欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学籍信息管理系统设计源代码.doc

    • 资源ID:33440050       资源大小:63KB        全文页数:12页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学籍信息管理系统设计源代码.doc

    精品文档,仅供学习与交流,如有侵权请联系网站删除#include <stdio.h>#define N 50#define M 200int stumax=0,scoremax=0;FILE *fp;struct student char num9; /学号 char name20; /姓名 int sex; /性别 int room; /宿舍号码 long int tel; /电话号码stuN;struct stuscore char num9; /学号 char coursenum10; /课程编号 char course15; /课程名称 float point; /学分 int nscore; /平时成绩 int expscore; /实验成绩 int examscore; /卷面成绩 int comscore; /综合成绩 float getpoint;/实得学分scoreM,score1M;void enter_stu();void input_stu(int j);void enter_score();void input_score(int i);void com_score(int i);void browse_stu();void browse_score();void search();void search_stu();void search_num();void search_name();void search_room();void search_score();void printf_onestu_score(char snum);void delete_one();void order();void order_course_num();void order_course();void order_printf(int k);/*菜单*/void menu() int w1; char n; /*变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/ system("cls"); do puts("*nn"); puts("t * 总菜单 *nn"); puts("t* 1.输入学生的基本信息 *"); puts("t* 2.浏览学生的基本信息 *"); puts("t* 3.输入学生的成绩基本信息 *"); puts("t* 4.浏览学生的成绩基本信息 *"); puts("t* 5.查询信息功能 *"); puts("t* 6.删除信息功能 *"); puts("t* 7.排序:按综合成绩或实得学分 *"); puts("t* 8.退出 *"); puts("nn*"); printf("n选择要进行的功能代号(1-8): bb"); scanf("%c",&n); if(n<'1'|n>'8') /*对选择的数字作判断*/ w1=1; printf("nn? 请输入数字 18!nn"); else w1=0; /*选择功能*/ switch(n) case '1':enter_stu();break; /*输入基本信息模块*/ case '2':browse_stu();break; /*浏览基本信息模块*/ case '3':enter_score();break; /*输入成绩基本信息模块*/ case '4':browse_score();break; /*浏览成绩基本信息模块*/ case '5':search();break; /*查找模块*/ case '6':delete_one();break; /*删除学籍模块*/ case '7':order();break; /*排序模块*/ case '8':exit(0); while(w1=1); getch();/*主函数*/void main() menu(); /*进入菜单*/*公用函数*/*保存所有分数*/void save_score() int i; if(fp=fopen("b.txt","w+")=NULL) /*以输出方式打开,在此前的记录被覆盖*/ printf("n 不能打开文件."); getch(); for(i=0;i<scoremax;i+) if(fwrite(&scorei,sizeof(struct stuscore),1,fp)!=1) printf("n 文件输入错误."); fclose(fp); printf("n 输入数据结束.Press any key to continue . . .");getch();/*保存所有学生信息*/void save() int i; if(fp=fopen("a.txt","w+")=NULL) /*以输出方式打开,在此前的记录被覆盖*/ printf("n不能打开文件"); getch(); for(i=0;i<stumax;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf("n文件输入错误."); fclose(fp);/*显示一个分数,形参i表示显示第i个记录*/void printf_one_score(int i) printf("n学号:%s 课程编号:%s 课程名称:%s 学分:%fn 平时成绩:%d 实验成绩:%d 卷面成绩:%d 综合成绩:%d 实得学分:%f",scorei.num,scorei.coursenum,scorei.course,scorei.point,scorei.nscore,scorei.expscore,scorei.examscore,scorei.comscore,scorei.getpoint);/*显示一个学生信息,形参j表示显示第j个记录*/void printf_one_stu(int j) printf("n学号:%s 姓名:%s 性别:%d 宿舍号码:%d 电话号码:%ld",stuj.num,stuj.name,stuj.sex,stuj.room,stuj.tel);/*删除一个分数,形参i表示删除第i个记录*/void delete_one_score(int i) printf_one_score(i); scorei=scorescoremax; scoremax-; printf("n删除学生数据成功!Press any key to continue . . ."); getch(); save_score();/*录入模块*/*学生信息录入*/void enter_stu() int i,n,es1; printf("n要输入多少学生基本信息(1%d)? ",N-1); scanf("%d",&n); /*要输入的学生基本信息的个数*/ es1=n+stumax; /*输入n个后应有的记录个数*/ printf("n输入信息:"); for(i=stumax;i<es1;i+) input_stu(i); /*调用输入学生基本信息函数*/ printf("n共输入 %d 项基本信息.Press any key to continue . . .",n);getch();menu(); /*提示输入任务结束,按任意键返回主菜单*/*录入一个学生信息*/void input_stu(int j) int i1,k=0,d; switch(j+1)%10) case 1:printf("n Input the %dst student's information:",j+1);break; case 2:printf("n Input the %dnd student's information:",j+1);break; default:printf("n Input the %dth student's information:",j+1); printf("n学号 姓名 性别 宿舍号码 电话号码n"); scanf("%s%s%d%d%ld",stuj.num,stuj.name,&stuj.sex,&stuj.room,&stuj.tel); stumax+; /*输入一个信息,总数加1*/ for(i1=0;i1<stumax;i1+) if(i1!=j&&strcmp(stui1.num,stuj.num)=0) /*表示学号已存在*/ k=1; /*k为学号是否已存在标记,k=1表存在*/ printf_one_stu(i1); /*显示已存在的学号的信息*/ printf("n此学生存在!"); /*提示学号已存在*/ stumax-; /*总数减1,删除输入信息*/ printf("n删除信息成功!"); save(); /*调用保存函数*/ break; if(k=0) /*表示学号不重复*/ printf("n输入信息成功!"); /*提示输入成功*/ save(); /*调用保存函数*/*学生成绩信息录入*/void enter_score() int i,n,es1; printf("n要输入的学生基本信息的个数(1%d)? ",M-1); scanf("%d",&n); /*要输入的学生基本信息的个数*/ es1=n+scoremax; /*输入n个后应有的记录个数*/ printf("n输入数据:n"); for(i=scoremax;i<es1;i+) input_score(i); /*调用输入学生成绩基本信息函数*/ save_score(); /*调用保存学生成绩基本信息函数*/ printf("n 共输入了 %d 项数据.Press any key to continue . . .",n);getch();menu(); /*提示输入任务结束,按任意键返回主菜单*/*录入一个成绩*/void input_score(int i) int j,j1,k,c; float a; switch(i+1)%10) case 1:printf("n Input the %dst student's score:",i+1);break; case 2:printf("n Input the %dnd student's score:",i+1);break; default:printf("n Input the %dth student's score:",i+1); printf("n学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩n"); scanf("n%s%s%s%f%d%d%d",scorei.num,scorei.coursenum,scorei.course,&a,&scorei.nscore,&scorei.expscore,&scorei.examscore); scorei.point=a; com_score(i); /*调用计算综合成绩、实得学分函数*/ scoremax+; for(j1=0;j1<stumax;j1+) if(strcmp(scorei.num,stuj1.num)=0) break; if(j1=stumax) /*学生不存在*/ printf("n该学生不存在!"); delete_one_score(i);/*/ else /*学生存在*/ for(k=0;k<scoremax;k+) if(k!=i&&strcmp(scorek.num,scorei.num)=0&&strcmp(scorek.coursenum,scorei.coursenum)=0&&strcmp(scorek.course,scorei.course)=0) /*该学生该课程已存在*/ printf("n该学生的此项信息已经存在!"); delete_one_score(i);/*/ break; if(strcmp(scorek.coursenum,scorei.coursenum)=0&&strcmp(scorek.course,scorei.course)!=0)|(strcmp(scorek.coursenum,scorei.coursenum)!=0&&strcmp(scorek.course,scorei.course)=0) /*该课程编号和课程名称与前面矛盾并提示删除哪一个*/ printf("n课程编号和课程名称不符:"); printf("n成绩信息%d:",i); printf_one_score(i); /*显示矛盾课程*/ printf("n成绩信息%d:",k); printf_one_score(k); /*显示矛盾课程*/ printf("n 1)删除成绩%d 2)删除成绩%d? bb",i,k); scanf("%d",&c); switch(c) case 1:delete_one_score(i);break; /*调用删除函数*/ default:delete_one_score(k); /*调用删除函数*/ break; if(k=scoremax) printf("n输入信息成功! Press any key to continue . . .");getch();/*计算综合成绩*/void com_score(int i) if(scorei.expscore=-1) /*判断是否有实验*/ scorei.comscore=scorei.nscore*0.3+scorei.examscore*0.7; else scorei.comscore=scorei.nscore*0.15+scorei.expscore*0.15+scorei.examscore*0.7; switch(scorei.comscore/10) case 10: case 9: scorei.getpoint=scorei.point*1.0;break; case 8: scorei.getpoint=scorei.point*0.8;break; case 7: scorei.getpoint=scorei.point*0.75;break; case 6: scorei.getpoint=scorei.point*0.6;break; default:scorei.getpoint=0; printf("n综合成绩计算结束. Press any key to continue . . .");getch();/*浏览模块*/*浏览学生信息*/void browse_stu() int i; for(i=0;i<stumax;i+) /* stumax 为总的学生数*/ printf_one_stu(i); /*调用显示一个学生基本信息函数*/ printf("n浏览学生基本信息结束.Press any key to continue . . .");getch();menu();/*浏览学生成绩信息*/void browse_score() int j; for(j=0;j<scoremax;j+) /* stumax 为总的学生数*/ printf_one_score(j); /*调用显示一个学生成绩基本信息函数*/ printf("n浏览学生成绩信息结束.Press any key to continue . . .");getch();menu();/*查找模块*/*查找*/void search() int c,c1; printf("n查找中 .n 选择要查询的信息:n1)学生基本信息 2)学生成绩 3)返回菜单 bb"); scanf("%d",&c); /*选择查找内容*/ if(c>=1&&c<=3) switch(c) case 1:search_stu();break; /*调用查找学生基本信息函数*/ case 2:search_score();break; /*调用查找学生成绩基本信息函数*/ default:menu(); printf("n查询结束.n 是否继续查询? 1)是 2)否 bb"); /*询问是否继续查找*/ scanf("%d",&c1); switch(c1) case 1:search();break; /*继续查找*/ default:menu();/*查找学生信息*/void search_stu() int i,c; printf("n 查找学生信息中.n 选择查询方式:n1)学号 2)姓名 3)宿舍编号 4)返回查询 ? bb"); scanf("%d",&c); /*选择查找方式*/ switch(c) case 1:search_num();break; /*调用按学号查询函数*/ case 2:search_name();break; /*调用按姓名查询函数*/ case 3:search_room();break; /*调用按宿舍号查询函数*/ default:printf("n继续查询."); printf("n查询结束. Press any key to continue . . .");getch();/*按学号查找学生信息*/void search_num() int i,c; char n19; printf("n请输入要查询学生的学号: "); scanf("%s",&n1); /*输入要查询的学号*/ for(i=0;i<stumax;i+) if(strcmp(stui.num,n1)=0) printf_one_stu(i); /*显示查到的记录*/ break; if(i=stumax) printf("n此学号不存在!n查询下一个学号? 1)是 2)否 bb"); /*未查到相应记录,询问是否继续查找*/ scanf("%d",&c); switch(c) case 1:search_num();break; /*继续按此方式查找*/ default:printf("n继续查找."); else printf("n学生信息查询结束. Press any key to continue . . .");getch();/*按姓名查找学生信息*/void search_name() int i,c,sn1=0; char n220; printf("n输入要查询学生的名字: "); scanf("%s",&n2); for(i=0;i<stumax;i+) if(strcmp(stui.name,n2)=0) printf_one_stu(i); /*显示查到的记录*/ sn1+; if(sn1=0) printf("n此学生不存在!n查询下一个学生? 1)是 2)否 bb"); /*未查到相应记录,询问是否继续查找*/ scanf("%d",&c); switch(c) case 1:search_name();break; /*继续按此方式查找*/ default:printf("n继续查询."); else printf("n查询结束. Press any key to continue . . .");getch();/*按宿舍查找学生信息*/void search_room() int i,c,r,sr1=0;printf("n输入要查询学生的宿舍号码: "); scanf("%d",&r); for(i=0;i<stumax;i+) if(stui.room=r) printf_one_stu(i); /*显示查到的记录*/ sr1+; if(sr1=0) printf("n这个宿舍号码不存在!n查询下一个宿舍号码? 1)是 2)否 bb"); /*未查到相应记录,询问是否继续查找*/ scanf("%d",&c); switch(c) case 1:search_room();break; /*继续按此方式查找*/ default:printf("n继续查询."); else printf("n查询结束. Press any key to continue . . .");getch();/*按学号查找学生成绩*/void search_score() int i,a,s1; char n39; printf("n输入要查询成绩的学生的学号: "); scanf("%s",n3); printf_onestu_score(n3); /*显示查到的记录*/ printf("n查询结束. n 是否查询其他学生? 1)是 2)否 bb"); /*询问是否继续查找*/ scanf("%d",&s1); switch(s1) case 1:search_score();break; /*继续按此方式查找*/ default:printf("n查询结束. Press any key to continue . . .");getch();/*显示一个学生的所有分数*/void printf_onestu_score(char snum) int i,j,k=0,a1; float gp=0; for(j=0;j<stumax;j+) if(strcmp(snum,stuj.num)=0) printf("n学号: %s 姓名:%s",stuj.num,stuj.name); printf("n"); break; if(j=stumax) printf("n此学生不存在!"); else for(i=0;i<scoremax;i+) if(strcmp(scorei.num,snum)=0) /*显示该学生的所有成绩*/ printf_one_score(i); k+; gp+=scorei.getpoint; printf("n"); printf("n共修: %d 科 实得总学分: %-5.1fn",k,gp); printf("n此学生成绩显示完毕. Press any key to continue . . .");getch();/*删除*/void delete_one() int i,j,sd1=0,sd2,sd3; char c9; printf("n你要删除哪位同学的信息记录? n请输入他的学号:"); scanf("%s",c); /*输入要删除的学号*/ for(i=0;i<stumax;i+) if(strcmp(stui.num,c)=0) break; if(i=stumax) /*未找到学生*/ printf("n未找到该学生!"); else /*找到学生*/ printf_one_stu(i); /*显示学生基本信息记录*/printf("n要删除这些信息么? 1)是 2)否并返回 bb"); scanf("%d",&sd2); /*删除确认?*/ if(sd2=1) /*确认*/ stui=stustumax-1; /*删除该学生基本信息*/ stumax-; printf("n删除学生信息成功!n"); save(); /*调用保存学生基本信息函数*/ for(j=0;j<scoremax;j+) /*删除该学生的成绩信息*/ if(strcmp(scorej.num,c)=0) delete_one_score(j); /*调用删除成绩函数*/ sd1+; if(sd1=0) printf("n该学生无成绩记录."); /*该学生无成绩记录*/ printf("n删除信息成功."); printf("n删除其他学生的成绩? 1)是 2)否 bb"); /*是否继续删除*/ scanf("%d",&sd3); switch(sd3) case 1:delete_one();break; /*继续删除*/ default: printf("n查询学生的号码结束. Press any key to continue . . .");getch();menu();/*排序*/void order() int c; printf("排序中.n按什么排序: 1)课程编号 2)课程 bb"); scanf("%d",&c); /*指定按什么排序*/ switch(c) case 1:order_course_n

    注意事项

    本文(学籍信息管理系统设计源代码.doc)为本站会员(豆****)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开