C语言设计学生选课系统_第1页
C语言设计学生选课系统_第2页
C语言设计学生选课系统_第3页
C语言设计学生选课系统_第4页
C语言设计学生选课系统_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include#include#include#include#include#define LEN sizeof(struct stu)#define FORMAT %-8d%-10s%-8d%-10d%-8d%-15st%-20sn#define DATA commi.num,,commi.banji,commi.xuehao,commi.chengji,commi.teach,commi.timu#define TM sizeof(struct stu)#define FORMAT2 %-8d%-15st%-20sn#define TMK commi.bianhao

2、,commi.laoshi,commi.xuantistruct stu/*定义学生信息结构体*/ int num; /*编号*/ int bianhao; char name15; /*学生名称*/ int banji; /*班级*/ int xuehao; /*学号*/ int chengji; /*成绩*/ char teach15; /*老师名称*/ char laoshi15; char timu20; /*选题*/ char xuanti20;struct stu comm100;/*定义结构体数组*/void in(); /*录入学生信息*/void give(); /*管理员录

3、入可选课题*/void show(); /*显示学生信息*/void order1(); /*按成绩排序*/void order2(); /*按班级学号排序*/void del(); /*删除学生信息*/void del2(); /*删除题目信息*/void modify1(); /*管理员修改学生信息*/void modify2(); /*学生选择毕业设计题目*/void menu1(); /*管理员菜单*/void menu2(); /*学生菜单*/void insert(); /*插入学生信息*/void tongji(); /*所选题目*/void search(); /*查找学生信息

4、*/void main() /*主函数*/ int h,flag1,flag2,flag3; char name20=,password10=11111; char name120=guanli,password110=11111; char xuanzhe20=gl; char person20,password210,ch20; printf (tt * 欢迎进入2014本科毕业设计管理系统!*nn); printf (tttt用 户 登 录 n ); printf (n请选择登陆方式:您是管理员请输入gl,学生请输入其他 : ); gets(ch); flag1=strcmp(ch,xu

5、anzhe); for(h=0;h!=6;) if(flag1=0) printf( 管理员名:); gets(person); flag2=strcmp(person,name1); printf( 密码: ); gets(password2); flag3=strcmp(password1,password2); else printf( 用户名:); gets(person); flag2=strcmp(person,name); /*strcmp比较两个字符串,若相等返回0*/ printf( 密码:); gets(password2); flag3=strcmp(password,p

6、assword2); if(flag2=0 & flag3=0) printf(ttt 登陆成功!nn); if(flag1=0) menu1(); else menu2(); break; else printf (ttt用户名或密码错误!nn); printf (ttt请注意:您还剩%d次机会!nn,5-h); h+; if (h=5) printf (对不起,您输入的用户名或密码有误,系统已强制退出。n);void menu1() /*管理员菜单*/ int n; system(cls); printf (ntt * 欢迎进入2014本科毕业设计管理系统管理员入口!*nn); print

7、f(tt*-学生管理系统-*n); printf(tt| 1. 录入学生信息 |n); printf(tt| 2. 序号查找信息 (精确) |n); printf(tt| 3. 名称查找信息 (模糊) |n); printf(tt| 4. 删除存档记录 |n); printf(tt| 5. 修改学生信息 |n); printf(tt| 6. 插入学生信息 |n); printf(tt*-*n); printf(tt| 7. 按成绩排序 |n); printf(tt| 8. 按班级学号排序 |n); printf(tt| 9. 统计学生信息 |n); printf(tt| 10. 显示已存所有信

8、息 |n); printf(tt*-*n); printf(tt| 11.管理员录入可选课题 |n); printf(tt| 12.删除已存课题信息 |n); printf(tt| 13.查看可供选择的课程 |n); printf(tt| 14. 退出 |n); printf(tt*-*nn); printf(ttt请输入对应数字选择对应功能:); scanf(%d,&n);/*输入选择功能的编号*/ while(n) switch(n) case 1: in(); break; /*调用录入学生信息过程*/ case 2: search(); break; /*查找学生信息过程*/ case

9、 3: search1(); break; /*查找学生信息过程*/ case 4: del(); break; /*调用删除学生信息的过程*/ case 5: modify1(); break; /*调用修改学生信息的过程*/ case 6: insert(); break; /*调用插入数据的过程*/ case 7: order1(); break; /*调用成绩排序过程*/ case 8: order2(); break; /*调用班级学号排序过程*/ case 9: tongji(); break; /*计算总数*/ case 10: show(); break; case 11: g

10、ive(); break; /*管理员录入可选课题*/ case 12: del2(); break; /*调用删除课题的过程*/ case 13: show1(); break; /*查看可供选择的课程*/ case 14: system(exit);exit(0); default:break; getch(); menu1(); /*执行完功能再次显示菜单界面*/ scanf(%d,&n); void menu2() /*学生菜单*/ int n; system(cls); printf (ntt * 欢迎进入2014本科毕业设计管理系统学生入口!*nn); printf(tt*-学生管

11、理系统-*n); printf(tt| 1. 显示所有学生信息 |n); printf(tt| 2. 序号查找信息 (精确) |n); printf(tt| 3. 名称查找信息 (模糊) |n); printf(tt| 4. 按成绩排序 |n); printf(tt| 5. 按班级学号排序 |n); printf(tt| 6. 统计学生信息 |n); printf(tt*-*n); printf(tt| 7. 确认本人信息并选择课题 (选课 ) |n); printf(tt| 8. 查看本学期可选择的课题 |n); printf(tt| 9. 退出 |n); printf(tt*-*nn);

12、printf(t温馨提示: 请查看选项8中所给题目,再进入7输入你想选择的题目!nn); printf(ttt请输入选项前数字选择对应功能: ); scanf(%d,&n);/*输入选择功能的编号*/ while(n) switch(n) case 1: show(); break; case 2: search(); break; case 3: search1(); break; case 4: order1(); break; /*调用成绩排序过程*/ case 5: order2(); break; /*调用班级学号排序过程*/ case 6: tongji(); break; /*计

13、算总数*/ case 7: modify2(); break; case 8: show1(); break; case 9:system(exit);exit(0); default:break; getch(); menu2(); /*执行完功能再次显示菜单界面*/ scanf(%d,&n); void in() /*录入学生信息*/ int i,m=0; /*m是记录的条数*/ char ch2; FILE *fp; /*定义文件指针*/ if(fp=fopen(data,ab+)=NULL) /*打开指定文件*/ printf(不能打开文件!n); /*null空指针*/ return

14、; while(!feof(fp) /feof(fp) 表示没有到达末尾这个末尾是最后一个字符的下一个位置,即读失败时的位置 if(fread(&commm ,LEN,1,fp)=1) m+; /*统计当前记录条数*/ fclose(fp); if(m=0) printf(没有记录!n); else system(cls); show(); /*调用show函数,显示原有信息*/ if(fp=fopen(data,wb)=NULL) /*wb:只写二进制文件*/ printf(不能打开文件!n); return; for(i=0;im;i+) fwrite(&commi ,LEN,1,fp);

15、 /*向指定的磁盘文件写入信息*/ /每次写 LEN,1次 printf(是否输入?(y/n):); scanf(%s,ch); while(strcmp(ch,Y)=0|strcmp(ch,y)=0)/*判断是否要录入新信息*/ printf(序号: ); scanf(%d,&commm.num); /*输入序号*/ for(i=0;im;i+) if(commi.num = commm.num) printf(该序号已经存在,按任意键继续!); getch(); fclose(fp); return; printf(姓名: ); scanf(%s,&); /*输入学生姓

16、名*/ printf(班级: ); scanf(%d,&commm.banji); /*输入学生班级*/ printf(学号: ); scanf(%d,&commm.xuehao); /*输入学生学号*/ printf(成绩: ); scanf(%d,&commm.chengji); /*输入学生成绩*/ printf(指导老师: ); scanf(%s,&commm.teach); /*输入老师姓名*/ printf(选题: ); scanf(%s,&commm.timu); /*输入所选题目*/ if(fwrite(&commm,LEN,1,fp)!=1) /*将新录入的信息写入指定的磁盘

17、文件*/ printf(不能保存!); getch(); else printf(已经保存,%s,); printf(的信息!n); m+; printf(是否继续?(y/n):); /*询问是否继续*/ scanf(%s,ch); /为下一次for循环取值 fclose(fp); printf(OK!n);void give() /*录入可选课题信息*/ int i,m=0; /*m是记录的条数*/ char ch2; FILE *fp; /*定义文件指针*/ if(fp=fopen(TMK,ab+)=NULL) /*打开指定文件*/ /ab+:向二进制文件末添加数据,允

18、许读 printf(不能打开文件!n); /*null空指针*/ return; while(!feof(fp) /feof(fp) 表示没有到达末尾这个末尾是最后一个字符的下一个位置,即读失败时的位置 if(fread(&commm ,TM,1,fp)=1) m+; /*统计当前记录条数*/ fclose(fp); if(m=0) printf(没有记录!n); else system(cls); show1(); /*调用show函数,显示原有信息*/ if(fp=fopen(TMK,wb)=NULL) /*wb:只写二进制文件*/ printf(不能打开文件!n); return; fo

19、r(i=0;im;i+) fwrite(&commi ,TM,1,fp); /*向指定的磁盘文件写入信息*/ /每次写 TM,1次 printf(是否输入?(y/n):); scanf(%s,ch); while(strcmp(ch,Y)=0|strcmp(ch,y)=0)/*判断是否要录入新信息*/ printf(编号: ); scanf(%d,&commm.bianhao); /*输入序号*/ for(i=0;im;i+) if(commi.bianhao = commm.bianhao) printf(该序号已经存在,按任意键继续!); getch(); fclose(fp); retu

20、rn; printf(n指导老师 : ); scanf(%s,&commm.laoshi); /*输入老师姓名*/ printf(题目: ); scanf(%s,&commm.xuanti); /*输入所给题目*/ if(fwrite(&commm,TM,1,fp)!=1) /*将新录入的信息写入指定的磁盘文件*/ printf(不能保存!); getch(); else printf(已经保存此课程的信息!n); m+; printf(是否继续?(y/n):); /*询问是否继续*/ scanf(%s,ch); /为下一次for循环取值 fclose(fp); printf(OK!n);vo

21、id show() /*显示学生信息*/ FILE *fp; int i,m=0; fp=fopen(data,ab+); /ab+:向二进制文件末添加数据,允许读 while(!feof(fp) if(fread(&commm ,LEN,1,fp)=1) /打开文件,读取成功时记录次数 m+; fclose(fp); printf(序号 姓名 班级 学号 成绩 指导老师 选题tn); for(i=0;im;i+) printf(FORMAT,DATA);/*将信息按指定格式打印*/ void show1() /*显示可供选择的课程*/ FILE *fp; int i,m=0; fp=fope

22、n(TMK,ab+); while(!feof(fp) if(fread(&commm ,TM,1,fp)=1) /打开文件,读取成功时记录次数 m+; fclose(fp); printf(编号 指导老师 课题tn); for(i=0;im;i+) printf(FORMAT2,TMK);/*将信息按指定格式打印*/ void order1() /*按成绩排序函数*/ FILE *fp; struct stu t; int i=0,j=0,m=0; if(fp=fopen(data,ab+)=NULL) printf(不能打开文件!n); return; while(!feof(fp) if

23、(fread(&commm ,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(没有记录!n); return; for(i=0;im-1;i+) for(j=i+1;jm;j+) /*双重循环实现成绩比较并交换*/ if(commi.chengji commj.chengji) t=commi; commi=commj; commj=t; if(fp=fopen(data,wb)=NULL) printf(不能打开n); return; for(i=0;im;i+) /*将重新排好序的内容重新写入指定的磁盘文件中*/ if(fwrite(&commi ,

24、LEN,1,fp)!=1) printf(%s 不能保存!n); getch(); fclose(fp); printf(保存成功n);void order2() /*按班级学号排序函数*/ FILE *fp; struct stu t; int i=0,j=0,m=0,x,y; if(fp=fopen(data,ab+)=NULL) printf(不能打开文件!n); return; while(!feof(fp) if(fread(&commm ,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(没有记录!n); return; for(i=0;im-

25、1;i+) for(j=i+1;j y) t=commi; commi=commj; commj=t; if(fp=fopen(data,wb)=NULL) printf(不能打开n); return; for(i=0;im;i+) /*将重新排好序的内容重新写入指定的磁盘文件中*/ if(fwrite(&commi ,LEN,1,fp)!=1) printf(%s 不能保存!n); getch(); fclose(fp); printf(保存成功n);void del() /*删除学生函数*/ FILE *fp; int snum,i,j,m=0; char ch2; if(fp=fopen

26、(data,ab+)=NULL) printf(不能打开文件n); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(没有记录!n); return; printf(请输入序号:); scanf(%d,&snum); for(i=0;im;i+) if(snum=commi.num) break; if(i=m) printf(没有找到!); getchar(); return; printf(已经找到该记录,是否删除?(y/n); scanf(%s,ch); if(strcm

27、p(ch,Y)=0|strcmp(ch,y)=0) /*判断是否要进行删除*/ for(j=i;jm;j+) commj = commj+1; /*将后一个记录移到前一个记录的位置*/ m-; /*记录的总个数减1*/ printf(成功删除!n); if(fp=fopen(data,wb)=NULL) printf(不能打开!n); return; for(j=0;jm;j+) /*将更改后的记录重新写入指定的磁盘文件中*/ if(fwrite(&commj ,LEN,1,fp)!=1) printf(不能保存!n); getch(); fclose(fp);void del2() /*删除

28、课题函数*/ FILE *fp; int snum,i,j,m=0; char ch2; if(fp=fopen(tmk,ab+)=NULL) printf(不能打开文件n); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(没有记录!n); return; printf(请输入题目编号: ); scanf(%d,&snum); for(i=0;im;i+) if(snum=commi.bianhao) break; if(i=m) printf(没有找到!); getcha

29、r(); return; printf(已经找到该记录,是否删除?(y/n); scanf(%s,ch); if(strcmp(ch,Y)=0|strcmp(ch,y)=0) /*判断是否要进行删除*/ for(j=i;jm;j+) commj = commj+1; /*将后一个记录移到前一个记录的位置*/ m-; /*记录的总个数减1*/ printf(成功删除!n); if(fp=fopen(tmk,wb)=NULL) printf(不能打开!n); return; for(j=0;jm;j+) /*将更改后的记录重新写入指定的磁盘文件中*/ if(fwrite(&commj ,TM,1,

30、fp)!=1) printf(不能保存!n); getch(); fclose(fp);void search() /*按编号查找函数(精确查询)*/ FILE *fp; int snum,i,m=0; char ch2; if(fp=fopen(data,ab+)=NULL) printf(不能打开文件n); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(没有记录!n); return; printf(请输入编号:); scanf(%d,&snum); for(i=0;i

31、m;i+) if(snum = commi.num) /*查找输入的编号是否在记录中*/ printf(已经找到该记录,是否显示?(y/n); scanf(%s,ch); if(strcmp(ch,Y)=0|strcmp(ch,y)=0) printf(序号 姓名 班级 学号 成绩 指导老师 选题tn); printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/ break; else return; if(i=m) printf(没有找到相应的记录!n);/*未找到要查找的信息*/void search1() /*按题目的部分查找(模糊查询)*/ FILE *fp; int i,m=0,flag=0,x,y,k; char str120,str220,ch2; if(fp=fopen(data,ab+)=NULL) printf(不能打开文件n); re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论