学生证管理系统c语言课程设计,WA51C语言课程设计_学生证管理系统.doc文档(资料4)...

《C语言课程设计_学生证管理系统.doc》由会员分享,可免费在线阅读全文,更多与《【WA51】C语言课程设计_学生证管理系统.doc文档》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、入某个操作后,根据应用程序的提示,从键盘输入相应的信息。、输出要求()应用程序运行后,要在屏幕上显示一个菜单;()要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。三、需求分析根据题目要求,学生信息要从文本文件中存取,所以本程序应该提供读写文件,显示、统计、查询、修改记录,保存文件等操作,此外,还应该提供键盘式选择菜单实现功能。四、总体设计根据需求分析,可以把这个系统的设计分为添加、修改、查询、浏览、统计、删除六大模块,其中查询模块可以分为三个子模块,统计模块可以分为三个子模块,子模块下面还有子函数;系统功能模块图如下所示:__五、详细设计头文件及结构体includeincludeincludedefineNstructClass班级{charCname[];班名charCno[];班号};structStudent学生{charSname[];姓名charSex[];性别charSno[];学号intAge;年龄structClassCInfo;嵌套结构体,表示班级信息}S。

2、C语言课程设计报告年月日报告一、课程设计目的二、实习内容及要求三、需求分析四、总体分析五、详细设计头文件及结构体主函数__菜单模块添加模块修改模块浏览模块查询模块按学号查询按名字查询按班级查询统计模块男生信息女生信息全体学生信息删除模块六、上机操作系统说明系统测试七、总结八、源代码一、课程设计目的通过实践,学会编制结构清晰、风格良好、数据结构适当的C语言程序,加深对C语言基础知识的理解和掌握,进一步巩固C语言编程实践能力,锻炼思维逻辑和解决综合性实际问题的能力。二、实习内容及要求、用C语言编写一个学生证管理系统,该系统具有以下功能:()录入某位学生的学生证信息;__()给定学号,显示某位学生的学生证信息;()给定某个班级的班号,显示该班所有学生的学生证信息;()给定某位学生的学号,修改该学生的学生证信息;()给定某位学生的学号,删除该学生的学生证信息;()提供一些统计各类信息的功能;()提供浏览所有学生的学生证信息的功能。、输入要求应用程序运行后,在屏幕上显示一个菜单;用户可以根据要求,选定相应的操作项目;进。

3、i]CInfoCname);}num=i;记录数__if(num==N){rintf(quot\n保存记录数超出结构体数组数的大小,请先修改N的值!\nquot);rintf(quot\n请按enter键返回主菜单!\nquot);getchar();getchar();menu();}rintf(quot\n请按照提示输入学生信息:\n\nquot);rintf(quot姓名:quot);scanf(quot%squot,amStuInfo[num]Sname);do{rintf(quot\n性别(男或女):quot);scanf(quot%squot,sex);if((strcm(sex,quot男quot)!=)amam(strcm(sex,quot女quot)!=)){rintf(quot输入错误,请输入男或女!\nquot);right=;getchar();}elseright=;}while(right==);strcy(StuInfo[num]Sex,sex);do{rintf(quot\n学。

4、uot\n班名:quot);scanf(quot%squot,amStuInfo[]CInfoCname);frintf(f,quot\n%s\t%s\t%s\t%d\t%s\t%squot,StuInfo[]Sname,StuInfo[]Sex,StuInfo[]Sno,StuInfo[]Age,StuInfo[]CInfoCno,StuInfo[]CInfoCname);fclose(f);rintf(quot\n保存成功!\nquot);rintf(quot\n请按enter键返回主菜单!\nquot);getchar();getchar();menu();}以上的输入是以写的方式输入,下面是以读写的方式输入数据for(i=;!feof(f);i++){fscanf(f,quot%s%s%s%d%s%squot,amStuInfo[i]Sname,amStuInfo[i]Sex,amStuInfo[i]Sno,amStuInfo[i]Age,amStuInfo[i]CInfoCno,amStuInfo[。

5、uotr+quot))==NULL)以读写方式打开{if((f=foen(quotStuInfotxtquot,quotwquot))==NULL)文件不存在就创建文件{rintf(quot\n文件不存在且创建失败,返回!\nquot);menu();}rintf(quot\n请按照提示输入学生信息:\n\nquot);rintf(quot姓名:quot);scanf(quot%squot,amStuInfo[]Sname);do{rintf(quot\n性别(男或女):quot);scanf(quot%squot,sex);if((strcm(sex,quot男quot)!=)amam(strcm(sex,quot女quot)!=)){rintf(quot输入错误,请输入男或女!\nquot);right=;getchar();}elseright=;}while(right==);strcy(StuInfo[]Sex,sex);do{rintf(quot\n学号(位):quot);scanf(quot%s。

6、(位):quot);scanf(quot%squot,sno);if(strlen(sno)!=){rintf(quot输入错误,学号长度应为位数!\nquot);right=;getchar();}elseright=;for(i=;iltnum;i++){if(strcm(sno,StuInfo[i]Sno)==){rintf(quot该学号已经存在,请重新输入!\nquot);right=;getchar();}}__}while(right==);strcy(StuInfo[num]Sno,sno);do{rintf(quot\n年龄:quot);scanf(quot%dquot,amage);if(age){rintf(quot年龄应在_之间,请重新输入年龄!\nquot);right=;getchar();}elseright=;}while(right==);StuInfo[num]Age=age;do{rintf(quot\n班号(位):quot);scanf(quot%squot,cno);。

7、uot,sno);if(strlen(sno)!=){rintf(quot输入错误,学号长度应为位数!\nquot);right=;getchar();}elseright=;}while(right==);__strcy(StuInfo[]Sno,sno);do{rintf(quot\n年龄:quot);scanf(quot%dquot,amage);if(age){rintf(quot年龄应在_之间,请重新输入年龄!\nquot);right=;getchar();}elseright=;}while(right==);StuInfo[]Age=age;do{rintf(quot\n班号(位):quot);scanf(quot%squot,cno);if(strlen(cno)!=){rintf(quot输入错误,班号长度应为位数!\nquot);right=;getchar();}elseright=;}while(right==);strcy(StuInfo[]CInfoCno,cno);rintf(。

8、f(strlen(cno)!=){rintf(quot输入错误,班号长度应为位数!\nquot);right=;getchar();}elseright=;}while(right==);strcy(StuInfo[num]CInfoCno,cno);rintf(quot\n班名:quot);scanf(quot%squot,amStuInfo[num]CInfoCname);把该记录写到文件末尾frintf(f,quot\n%s\t%s\t%s\t%d\t%s\t%squot,StuInfo[num]Sname,StuInfo[num]Sex,StuInfo[num]Sno,StuInfo[num]Age,StuInfo[num]CInfoCno,StuInfo[num]CInfoCname);fclose(f);rintf(quot\n保存成功!\nquot);rintf(quot\n请按enter键返回主菜单!\nquot);getchar();getchar();menu();}修改模块__voidm。

9、tic();eak;统计模块case:Delete();eak;删除模块case:exit();退出}}添加模块voidadd()首先要判断文件StuInfotxt是否存在,如果存在就以读写(r+)的方式打开,如果不存在,就以写(w)的方式创建文件StuInfotxt。输入格式要求:性别为男或女,学号为位且不能重复,年龄在_之间,班级号为位,程序提供了完善的验证机制,输入错误时将提示重新输入直到正确为止。此外,如果以读写的方式打开,还要判断记录数numltN是否成立,因为结构体数组的大小为N,当num=N时,表示已满,不能再存储数据,需要修改N的值。__{intnum;表示记录数inti;intage;临时变量,用于验证输入的性别是否满足条件charsno[];临时变量,用于验证输入的学号是否满足条件charsex[];临时变量,用于验证输入的性别是否满足条件charcno[];临时变量,用于验证输入的班号是否满足条件intright;FILE*f;if((f=foen(quotStuInfotxtquot,。

10、dify(){intnum;inti;intright;intage;charsex[];charcno[];charsno[];intfound=_;charStuNO[];FILE*fr,*fw;if((fr=foen(quotStuInfotxtquot,quotrquot))==NULL){rintf(quot文件打不开!\nquot);menu();}for(i=;!feof(fr);i++){fscanf(fr,quot%s%s%s%d%s%squot,amStuInfo[i]Sname,amStuInfo[i]Sex,amStuInfo[i]Sno,amStuInfo[i]Age,amStuInfo[i]CInfoCno,amStuInfo[i]CInfoCname);}num=i;fclose(fr);rintf(quot\n请输入学号选择要修改的记录:quot);scanf(quot%squot,StuNO);先判断文件StuInfotxt以读(r)的方式能否打开,不能就返回,可以就读入记录。

11、uotr+quot))==NULL)以读写方式打开{if((f=foen(quotStuInfotxtquot,quotwquot))==NULL)文件不存在就创建文件{rintf(quot\n文件不存在且创建失败,返回!\nquot);menu();}rintf(quot\n请按照提示输入学生信息:\n\nquot);rintf(quot姓名:quot);scanf(quot%squot,amStuInfo[]Sname);do{rintf(quot\n性别(男或女):quot);scanf(quot%squot,sex);if((strcm(sex,quot男quot)!=)amam(strcm(sex,quot女quot)!=)){rintf(quot输入错误,请输入男或女!\nquot);right=;getchar();}elseright=;}while(right==);strcy(StuInfo[]Sex,sex);do{rintf(quot\n学号(位):quot);scanf(quot%s 。

12、然后输入学号查找记录,没找到就返回,找到就按照提示修改该记录,与输入模块一样,输入的格式要求:性别为男或女,学号为位且不能与除当前修改的记录的学号外的记录的学号重复,年龄在_之间,班级号为位,程序提供了完善的验证机制,输入错误时将提示重新输入直到正确为止。输入完成后,再以写(w)的方式创建文件,不能创建就返回,可以就将结构体数组中的所有记录保存到文件中,这与添加稍有差别,最后返回主菜单。开始(fr=foen(quotStuInfotxtquot,quotrquot))==NULL读取文件输入学号根据提示输入新信息(fw=foen(quotStuInfotxtquot,quotwquot))==NULL保存数据主菜单是否存在该学号的记录否是否是否是__for(i=;iltnum;i++){if(strcm(StuNO,StuInfo[i]Sno)==){found=i;rintf(quot\n你要修改的学生信息为:\n\nquot);rintf(quot姓名性别学号年龄班号班名\nquot);rintf(quo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值