#include<stdio.h>
#include<stdlib.h>
#include <string.h>//定義了一個變數型別、一個宏和各種操作字符
struct course//定義結構體課程
{ int num;
char name[20];
char kind[10]; int time; int ttime; int etime; int mark; int term;};struct student { int snum; int cnum; char cname[20]; };/*課程資訊錄入*/void insert(){ void main(); FILE *fp; struct course c; int count; int i;if((fp=fopen("course.txt","a+"))==NULL){printf("cannot?open?file\n");}printf("\n請輸入課程門數:\n");scanf("%d",&count);printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時 學分 開課學期:\n");for(i=0;i<count;i++){scanf("%d %s %s %d %d %d %d %d",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);fprintf(fp,"%d %s %s %d %d %d %d?%d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}fclose(fp);main();}/*課程資訊瀏覽*/void browser(){ void main(); FILE *fp; struct course c; int a;if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot?open?course!\n");}printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時 學分 開課學期:\n");for(;!feof(fp);){fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}fclose(fp);printf("\n1-回傳主選單;2-退出選課系統\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*課程資訊查詢*/void search(){ void main(); FILE *fp; struct course c; int score; char kind[10]; int a; int b;printf("1.按學分查詢,2.按課程性質查詢.\n");printf("請選擇查詢方式,輸入選項數字:");scanf("%d",&b);if(b==1){printf("\n請輸入您要查詢的學分:\n");scanf("%d",&score);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot open course!\n");}printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時 學分 開課學期:\n");for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);if(c.mark==score)printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}}else if(b==2){printf("\n請輸入您要查詢的課程性質:\n");scanf("%s",&kind);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot?open?course!\n");}printf("課程編號 課程名稱 課程性質 總學時 授課學時 實驗或上機學時 學分 開課學期:\n");for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);if(strcmp(c.kind,kind)==0)printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}}else{printf("輸入錯誤!");exit(1);}fclose(fp);printf("\n1-回傳主選單;2-退出選課系統\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*統計選課情況*/void xuanke_information(){void main();int total=0;int a;FILE *fp; struct student s;if((fp=fopen("student.txt","r"))==NULL){printf("\nCannot?open?student!\n");}printf(" 學號 課程編號 課程名稱\n");for(;!feof(fp);){fscanf(fp,"%d%d%s\n",&s.snum,&s.cnum,&s.cname);total++;printf("%7d%9d%13s\n",s.snum,s.cnum,s.cname);}printf("\n選課學生總人數為:%d 人",total);fclose(fp);printf("\n1-回傳主選單;2-退出選課系統\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*學生選修課程*/ void xuan_ke(){ void main(); struct student s; struct course c; int a; FILE *fp;printf("\n請輸入您的學號及您要選擇的課程編號:");scanf("%d%d",&s.snum,&s.cnum);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot open course!\n");}for(;!feof(fp);){fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);if(s.cnum==c.num)break;}fclose(fp);if((fp=fopen("student.txt","a+"))==NULL){printf("\nCannot open student!\n");}fprintf(fp,"%d %d %s\n",s.snum,s.cnum,c.name);fclose(fp);printf("\n1-回傳主選單;2-退出選課系統\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*主選單*/void main(){int n,w=0;printf("***************************************************************\n");printf("學生選課系統選單\n");printf("***************************************************************\n");printf(" 1-錄入選課資訊\n");printf(" 2-瀏覽選課資訊\n");printf(" 3-查詢選課資訊\n");printf(" 4-統計選課情況\n");printf(" 5-進入選課操作\n");printf(" 0-退出選課系統\n");printf("****************************************************************\n");printf("請選擇輸入選項前數字:");scanf("%d" ,&n);do{if(n>5||n<0){printf("\n輸入錯誤!請重新輸入!\n");scanf("%d",&n);}else w=1;}while(w==0);switch(n){case 1:insert();break;case 2:browser();break;case 3:search();break;case 4:xuanke_information();break;case 5:xuan_ke();break;case 0:exit(0);}return ;}
uj5u.com熱心網友回復:
排版太亂了,沒人愿意看的,建議改進一下排版uj5u.com熱心網友回復:
報什么錯啊?uj5u.com熱心網友回復:
排版感人。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/45951.html
標籤:C語言
