学生选课管理计划系统c语言知识程序.doc
《学生选课管理计划系统c语言知识程序.doc》由会员分享,可在线阅读,更多相关《学生选课管理计划系统c语言知识程序.doc(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include #include#includeint N1,N2;struct couse * head1;struct student * head2;struct couse/课程信息结构体 int num1;/课程编号char name120;/课程名称char type20;/课程性质int hour;/总学时int teach;/上课学时int exp;/实验上机学时int credit;/学分int semester;/开课学期 int nelepeo;/课程已选人数int Melepeo; /课程上限 struct couse * next;struct student/学生
2、信息结构体 int num2;/学号 char name220;/姓名int nelenum50;/已选课程编号char nelename1020;/已选名称 int nelen; /已选课程数量int score; /总学分int gainscore; /已获得的学分 struct student * next;void manger();void student();void managementc();void managements();void manage();void main();void intoc() /存储课程信息FILE * fp;struct couse * p;ch
3、ar filepath30;printf(ttt*n); printf(ntttt欢迎使用此系统!n); printf(ttt*n);printf(输入路径:);getchar();gets(filepath);if(fp=fopen(filepath,w)=NULL)printf(无法储存!);exit(0);p=head1;while(p!=NULL)fprintf(fp,%d%s%s%d%d%d%d%d%d%dn,p-num1,p-name1,p-type,p-hour,p-teach,p-exp,p-credit,p-semester,p-nelepeo,p-Melepeo);p=p-
4、next;fclose(fp);printf(已储存入%s文件!n,filepath);void keyboardc()/录入课程子函数(从键盘录入)struct couse *p1,*p2;N1=0;p1=p2=(struct couse*) malloc(sizeof(struct couse);printf(ttt*n);printf(ntttt欢迎使用此系统!n);printf(ttt*n); printf(编号名称性质总学时上课学时实验上机学时学分开课学期已选人数课程上限n);scanf(%d %s %s %d %d %d %d %d %d %d,&p1-num1,p1-name1,
5、&p1-type,&p1-hour,&p1-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); head1=NULL;while(p1-num1!=0) N1=N1+1; if(N1=1)head1=p1; else p2-next=p1;/对这段语句有疑问 p2=p1; p1=(struct couse * )malloc(sizeof(struct couse); scanf(%d %s %s %d %d %d %d %d %d %d,&p1-num1,p1-name1,p1-type,&p1-hour,&p1-t
6、each,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); p2-next=NULL;void filec()/录入键盘子函数(从文件录入) FILE * fp; char filepath20; struct couse *p1,*p2; N1=0;printf(ttt*n); printf(ntttt欢迎使用此系统!n); printf(ttt*n); printf(输入要读入的文件路径:); getchar(); gets(filepath); if(fp=fopen(filepath,rb)=NULL) printf(找
7、不到%s文件!n,filepath); exit(0); p1=p2=(struct couse*)malloc(sizeof(struct couse); fscanf(fp,%d%s%s%d%d%d%d%d%d%d,&p1-num1,p1-name1,p1-type,&p1-hour,&p1-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); head1=NULL; while(!feof(fp) N1=N1+1; if(N1=1)head1=p1; else p2-next=p1; p2=p1; p1=(stru
8、ct couse * )malloc(sizeof(struct couse); fscanf(fp,%d%s%s%d%d%d%d%d%d%d,&p1-num1,p1-name1,p1-type,&p1-hour,&p1-teach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo); p2-next=NULL;void inputc()/录入课程主函数 int i;printf(ttt*n); printf(ntttt欢迎使用此系统!n); printf(ttt*n); printf(ttt录入课程信息n); printf(ntt
9、t1.从键盘录入n); printf(ttt2.从文件录入n); printf(ttt3.返回上一菜单n); printf(请选择(13):); scanf(%d,&i); switch(i) case(1):system(cls);keyboardc();system(cls);inputc();break; case(2):system(cls);filec();system(cls);inputc();break; case(3):system(cls);managementc();break; void insertc(int num2)/课程管理子函数(修改课程)struct cou
10、se *p1,*p2; if(head1=NULL) printf(nttt没有课程,无法修改!n); goto end; p1=head1; while(num2!=p1-num1 & p1-next!=NULL) p2=p1; p1=p1-next; if(num2=p1-num1) printf(ttt请重新输入数据进行修改n);printf(课程编号课程名称课程性质总学时上课学时实验上机学时学分开课学期课程已选人数课程上限n);scanf(%d %s %s %d %d %d %d %d %d %d %d,&p1-num1,p1-name1,p1-type,&p1-hour,&p1-te
11、ach,&p1-exp,&p1-credit,&p1-semester,&p1-nelepeo,&p1-Melepeo);printf(ttt已修改该课程n); else printf(ttt无该编号的课程!n); end:;void delc(int num1)/课程管理子函数(删除课程) struct couse *p1,*p2; if(head1=NULL) printf(nttt没有课程,无法删除!n); goto end; p1=head1; while(num1!=p1-num1 & p1-next!=NULL) p2=p1; p1=p1-next; if(num1=p1-num1
12、) if(p1=head1) head1=p1-next; else p2-next=p1-next; printf(已删除该编号课程!n); N1=N1-1; else printf(无该编号的课程!n); end:;void managementc()/课程管理主函数 int i,num1,num2=1;printf(ttt*n); printf(ntttt欢迎使用此系统!n); printf(ttt*n); printf(ttt课程管理n);printf(ttt1.添加课程n); printf(ttt2.修改课程n); printf(ttt3.删除课程n);printf(ttt4.存储课
13、程信息n); printf(ttt5.返回上一菜单n); printf(请选择(15):); scanf(%d,&i); switch(i) case(1):system(cls);inputc();system(cls);break; case(2): system(cls);printf(ttt*n); printf(ntttt欢迎使用此系统!n); printf(ttt*n);printf(请输入要修改的课程编号:n);scanf(%d,&num2);insertc(num2);managementc();system(cls); break; case(3): system(cls);
14、printf(ttt*n); printf(ntttt欢迎使用此系统!n); printf(ttt*n); printf(请输入要删除课程的编号:n); scanf(%d,&num1); delc(num1);managementc();system(cls); break; case(4):system(cls);intoc();managementc();break; case(5):system(cls);manage();break; void intos() /存储学生信息FILE * fp;struct student * p;char filepath30;printf(ttt*
15、n); printf(ntttt欢迎使用此系统!n); printf(ttt*n);printf(请输入路径:);getchar();gets(filepath);if(fp=fopen(filepath,wb)=NULL)printf(n 无法储存!);exit(0);p=head2;while(p!=NULL)fwrite(p,sizeof(struct student),1,fp);p=p-next;fclose(fp);printf(已储存入 %s文件!n,filepath); void keyboards()/录入学生信息子函数(从键盘录入) int i; struct studen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 管理 计划 规划 系统 语言 知识 程序
限制150内