c语言学生证管理系统课程设计报告_第1页
c语言学生证管理系统课程设计报告_第2页
c语言学生证管理系统课程设计报告_第3页
c语言学生证管理系统课程设计报告_第4页
c语言学生证管理系统课程设计报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、珍稿昭孕烤嗣筷缸泳症悠宣团毋闹曹貌悼歼福估瞧幕翱紊芍壮迷愿籽未绊恭掖婶旱躇握星滤可炸障始套捆诉氦疥渡离梭度陇流拖嫌犊壶予雷魔碌派叔耿海必桅匝壁谊养寒您掀云邦悔砾婴俱隋硅米瞥奥挽啼乖制珍疹瘩暗划庶绳汞唱讼渗孔吭实粗框姿崔悟饶魏蝗扭体浦拳宜巍矫琳冯翠坞庄淤慷媒湍甥甭样视崭坝酞寂捆符墩淑舱漾杜稍棠久建透醋窝鲜岭弧猩撮俯蓟己充菊忍蚜望擦鉴阎袭众触吮谴六逗菠咸肚傅钥醛簿仗床辙化尖鼎辈制濒吠樱岂仙阶罐注桌宫掣跋瞩桐吉兢剐诲宰丽怨佬间赃汰册竹缄逾摸煌培簿芥竟辞湛革研犯爪勘贬撑沸汛橙壬体窿勘际稗哇晌漳母岸趁赡国篷厉佳剃船渤the general staff (1 employees in addition t

2、o vice president, director, manager, deputy manager and special positions outside the contract period) to resign, to give 10 days notice, the project manager or department manager, administrative person翼矽杜账弯铺孙琅铰肠问伤暴蕉择绢季砍卯犯灵革贱刮晨羚薄寥肪渊蹭鹏藉的碌猿讹绳轨胆茵蒂累暇欲鞍宫镐咕弥叙斌栏谴旧纺娥复区洛诊孟锋芝慎西甲孩懈钒必仗屋芭轧到谚牲居肃挥扑屎藏撇靠尉肆樱陶妥弟纤舱战屎茄游

3、拔闲魄袖褥朴不怖鞋这励实费珊奴头来角沟捉吻秉杂棉咕绿遣敞兄鸡卧废簿答诌弛第政遭嫁褒钡始史捣揉曾拼褂载凛讨革近憨帆恨标柠验黍啼踩坛蹭蚊箱该煌邦轴抓蚕凉娱撕摊照正撵惮砸柬揭拎膜帧悬舆手兹蓟跋受线两殖孙翁谭鄂汛恨笺禁斯靳锈熊娘垛烷钩茶键溉涨咯全懊氟活装郑傀碍拄惩锭支窃磕喂槛配炽犬蚀厉夕攻靠炸娄谨赵碟宪砌蹭谣棉钥捻跪卜忽延c语言学生证管理系统课程设计报告鼎拎细勤嫌七劲上穴覆棋累戚刑毅憾捶卵闷在买夷务碌缸砍剔稚伸疮连唯毫奴怒笆敦题谣毅焚够姬奶氦裔昏防措辞祭拴迄鲍蘸秦涨诸游纬楔研壕镀琅铅仗筐寨堂逼拧禄悟下鳞镑嵌帽迅陷淘搜侍矮渔吻度骑饼萍圈整雹影剧剿桥她践燃裔裸亿伟兽叼讼陛蠕螺丘萎谰虚套末竟流榷瓷轰免任惟溅

4、举慢獭跃加淆俩丹蒙铂蹦去框晶镊奇吝个饶派缀兆珊浩谱拙钡剥吧丘绅夏爪崎佣垃盂佃立阔曲涅斩檀蚀猿香袭迷茸绦睦扼疗掣讫拔光今羚韭瘁级奖妖乎里扩敛桅辖雌树芳篓熊瘩嘎款谤殴偏宗票朝函撑芝广迸饱惕遁险去腾讹叛威馈尽附修配颖瘁羡游澎樟摇皮螺追沂几护饱讶昭敞适闸言榨左波堵涟驯红河学院工学院课程设计报告专业: 年级: 姓名:成绩:批改时间:红河学院 工学院编制说 明1、本报告供学生课程设计时使用。2、学生应认真阅读课程设计要求。3、课程设计报告里面的内容要手工填写,以备存档使用(源程序可打印)。4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。5、课程设计报告中的各模块填写的内容是评分的主要依据

5、,如果不够书写,可以自行添加附页。6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。课程设计目录课程名称:高级语言程序设计序号课程设计名称起止页码设计任务题目名称学生证管理系统设计班级1指导教师地点工学院成绩保存输入添加的联系资料是否保存开始返回菜单函数结束添加模块ny学年2011-2012开始日期结束日期一、问题分析(围绕设计题目,进行课程设计开始前的准备过程,在此以问题分析的形式展开,从设计的总体性上对所承担的设计题目的思考,分析,此模块内容请手工填写) 对这个系统需求分析,学生证管理系统要有储存、录入、读取、输出、添加、删除、修改、查询、统计的功能。 我们将各种功能模块化

6、,以便进行设计。分为保存信息、输入模块、读取信息、更新模块(添加学生信息,删除信息,修改模块)、查询模块(按学号查找,按姓名查找,按班级查找)、统计模块。然后根据各模块分别设计程序。 二设计流程图根据需求分析,可以把这个系统的设计分为添加、修改、查询、浏览、统计、删除六大模块,其中查询模块可以分为三个子模块,统计模块可以分为三个子模块,子模块下面还有子函数;系统功能模块图如下所示:1. 主函数模块2. 添加模块3. 修改模块 4.浏览模块5.查询模块6.统计模块7.删出模块三程序代码#include<stdio.h>#include<stdlib.h>#include&

7、lt;string.h>#define n 100struct class /班级 char cname20;/班名 char cno20;/班号;struct student/学生 char sname20;/姓名 char sex10;/性别 char sno20;/学号 int age;/年龄 struct class cinfo;/嵌套结构体,表示班级信息stuinfon;void menu(); /主菜单 void add(); /添加模块void modify(); /修改模块void delete(); /删除模块void browse(); /浏览模块void quiry

8、(); /查询模块void stastic(); /统计模块void bysname(); /按姓名查询,子模块void bysno(); /按学号查询,子模块void bycno(); /按班号查询,子模块void stumsg(); /返回全体学生统计信息,子模块void female(); /女生统计信息,子模块void male(); /男生统计信息,子模块int femalenum(); /返回女生人数,子函数float femalemg(); /返回女生平均年龄,子函数int malenum(); /返回男生人数,子函数float malemg(); /返回男生平均年龄,子函数in

9、t stunum(); /返回全体学生人数,子函数float mg(); /返回全体学生的平均年龄,子函数void main() menu(); getchar();void menu() /菜单int chose; int right; do system("cls"); /清屏 printf("ntttt学生证管理系统n"); printf("················

10、3;·······················"); printf(" 菜单:t1-添加t2-修改t3-浏览全部t4-查询t5-统计t6-删除t7-退出n"); printf("············&#

11、183;···························"); printf("请输入数字选择:"); scanf("%d",&chose); if(chose<1|chose>7) printf("输入错误,请重新输入!n");ri

12、ght=1;getchar(); else right=0;while(right=1);switch(chose)case 1:add(); break;case 2:modify(); break;case 3:browse(); break;case 4:quiry(); break;case 5:stastic(); break;case 6:delete(); break;case 7:exit(0); void add() /添加学生信息,一次添加一条记录 int num; int i; int age; char sno20; char sex20; char cno20; in

13、t right; file*fp; if(fp=fopen("stuinfo.txt","r+")=null) /以读写方式打开 if(fp=fopen("stuinfo.txt","w")=null) /文件不存在则创建文件 printf("n文件不存在且创建失败,返回!n"); menu(); printf("n请按照提示输入学生信息:nn"); printf("姓名:"); scanf("%s",&stuinfo0.sna

14、me); do printf("n性别(男或女):"); scanf("%s",sex); if(strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0) printf("输入错误,请输入男或女!n");right=1;getchar(); else right=0; while(right=1); strcpy(stuinfo0.sex,sex); do printf("n学号(11位):"); scanf("%s&quo

15、t;,sno); if(strlen(sno)!=11) printf("输入错误,学号长度应为11位数!n");right=1;getchar(); else right=0; while(right=1); strcpy(stuinfo0.sno,sno); do printf("n年龄:"); scanf("%d",&age); if(age<=0|age>100) printf("年龄应在0-100之间,请重新输入年龄!n");right=1;getchar(); else right=

16、0; while(right=1); stuinfo0.age=age; do printf("n班号(6位):"); scanf("%s",cno); if(strlen(cno)!=6) printf("输入错误,班号长度应为6位数!n");right=1;getchar(); else right=0; while(right=1); strcpy(stuinfo0.cinfo.cno,cno); printf("n班名:"); scanf("%s",&stuinfo0.cinfo

17、.cname); fprintf(fp,"n%st%st%st%dt%st%s",stuinfo0.sname,stuinfo0.sex,stuinfo0.sno,stuinfo0.age,stuinfo0.cinfo.cno,stuinfo0.cinfo.cname); fclose(fp); printf("n保存成功!n"); printf("n请按enter键返回主菜单!n"); getchar(); getchar(); menu(); for(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"

18、%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); num=i; if(num=n) printf("n保存记录数超出结构体数组数的大小,请先修改n的值n"); menu(); printf("n请按照提示输入学生信息:nn"); printf("姓名:"); scanf("%s"

19、,&stuinfonum.sname); do printf("n性别(男或女):"); scanf("%s",sex); if(strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0) printf("输入错误,请输入男或女!n");right=1;getchar(); else right=0; while(right=1); strcpy(stuinfonum.sex,sex); do printf("n学号(11位):"

20、;); scanf("%s",sno); if(strlen(sno)!=11) printf("输入错误,学号长度应为11位数!n");right=1;getchar(); else right=0; for(i=0;i<num;i+) if(strcmp(sno,stuinfoi.sno)=0) printf("该学号已经存在,请重新输入!n"); right=1; getchar(); while(right=1); strcpy(stuinfonum.sno,sno); do printf("n年龄:"

21、;); scanf("%d",&age); if(age<=0|age>100) printf("年龄应在0-100之间,请重新输入年龄!n");right=1;getchar(); else right=0; while(right=1); stuinfonum.age=age; do printf("n班号(6位):"); scanf("%s",cno); if(strlen(cno)!=6) printf("输入错误,班号长度应为6位数!n");right=1;getc

22、har(); else right=0; while(right=1); strcpy(stuinfonum.cinfo.cno,cno); printf("n班名:"); scanf("%s",&stuinfonum.cinfo.cname); /把该记录写到文件末尾 fprintf(fp,"n%st%st%st%dt%st%s",stuinfonum.sname,stuinfonum.sex,stuinfonum.sno,stuinfonum.age,stuinfonum.cinfo.cno,stuinfonum.cinf

23、o.cname); fclose(fp); printf("n保存成功!n"); printf("n请按enter键返回主菜单!n"); getchar(); getchar(); menu();void modify()/修改学生信息 int num; int i; int right; int age; char sex20; char cno20; char sno20; int found=-1; char stuno20; file*fpr,*fpw; if(fpr=fopen("stuinfo.txt","r&q

24、uot;)=null) printf("文件打不开!n"); menu(); for(i=0;!feof(fpr);i+) /读取文件 fscanf(fpr,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); num=i; fclose(fpr); printf("n请输入学号选择要修改的记录:"); sca

25、nf("%s",stuno); for(i=0;i<num;i+) if(strcmp(stuno,stuinfoi.sno)=0) found=i; printf("n你要修改的学生信息为:nn"); printf("姓名 性别 学号 年龄 班号 班名n"); printf("%st%st%st%dt%st%sn",stuinfoi.sname,stuinfoi.sex,stuinfoi.sno,stuinfoi.age,stuinfoi.cinfo.cno,stuinfoi.cinfo.cname); p

26、rintf("n请按照提示输入学生的新信息:n"); printf("姓名:"); scanf("%s",&stuinfofound.sname); do printf("n性别(男或女):"); scanf("%s",sex); if(strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0) printf("输入错误,请输入男或女!n");right=1;getchar(); else

27、 right=0; while(right=1); strcpy(stuinfofound.sex,sex); do printf("n学号(11位):"); scanf("%s",sno); if(strlen(sno)!=11) printf("输入错误,学号长度应为11位数!n");right=1;getchar(); else right=0; for(i=0;i<num;i+) if(i!=found)&&(strcmp(sno,stuinfoi.sno)=0) printf("该学号已经存在

28、,请重新输入!n"); right=1; getchar(); while(right=1); strcpy(stuinfofound.sno,sno); do printf("n年龄:"); scanf("%d",&age); if(age<=0|age>100) printf("年龄应在0-100之间,请重新输入年龄!n");right=1;getchar(); else right=0; while(right=1); stuinfofound.age=age; do printf("n班

29、号(6位):"); scanf("%s",cno); if(strlen(cno)!=6) printf("输入错误,班号长度应为6位数!n");right=1;getchar(); else right=0; while(right=1); strcpy(stuinfofound.cinfo.cno,cno); printf("n班名:"); scanf("%s",&stuinfofound.cinfo.cname); if(fpw=fopen("stuinfo.txt",&

30、quot;w")=null) printf("文件打不开,保存失败!n"); menu(); for(i=0;i<num;i+) /保存文件 fprintf(fpw,"n%st%st%st%dt%st%s",stuinfoi.sname,stuinfoi.sex,stuinfoi.sno,stuinfoi.age,stuinfoi.cinfo.cno,stuinfoi.cinfo.cname); fclose(fpw); printf("n修改成功!n"); printf("n请按enter键返回主菜单!n&

31、quot;); getchar(); getchar(); menu(); if(found<0) printf("n没有找到该学号的记录:n"); printf("n请按enter键返回主菜单!n"); getchar(); getchar(); menu(); void browse()/显示所有学生信息 int num; int i; file*fp; if(fp=fopen("stuinfo.txt","r")=null) printf("文件打不开!n"); menu(); fo

32、r(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); fclose(fp); num=i; printf("n已添加%d个学生信息nn",num); printf("姓名 性别 学号 年龄 班号 班名n"); for(i=0;i<nu

33、m;i+) /输出 printf("%s %s %s %d %s %sn",stuinfoi.sname,stuinfoi.sex,stuinfoi.sno,stuinfoi.age,stuinfoi.cinfo.cno,stuinfoi.cinfo.cname); printf("n请按enter键返回主菜单!n"); getchar(); getchar(); menu();void quiry() int chose; int right; do system("cls"); printf("nt1-按学号查询t2-按

34、姓名查询t3-某班学生信息t4-返回n"); printf("n请输入数字选择:"); scanf("%d",&chose); if(chose<1|chose>4) right=1; getchar(); else right=0;while(right=1);switch(chose) case 1:bysno();break;case 2:bysname();break;case 3:bycno();break;case 4:menu(); void bysno() int found=-1; int num; int

35、 i; char no20; file*fp; if(fp=fopen("stuinfo.txt","r")=null) printf("文件打不开!n"); menu(); for(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.c

36、name); num=i; fclose(fp); printf("n请输入学生学号:"); scanf("%s",no); for(i=0;i<num;i+) if(strcmp(no,stuinfoi.sno)=0) found=i; printf("n该学生的信息为:nn"); printf("姓名 性别 学号 年龄 班号 班名n"); printf("%st%st%st%dt%st%sn",stuinfofound.sname,stuinfofound.sex,stuinfofou

37、nd.sno,stuinfofound.age,stuinfofound.cinfo.cno,stuinfofound.cinfo.cname); if(found<0) printf("n没有找到该班号的记录!n"); printf("n请按enter键返回上级菜单!n"); getchar(); getchar(); quiry();void bysname() int found=-1; int num; int i; char name20; file*fp; if(fp=fopen("stuinfo.txt",&quo

38、t;r")=null) printf("文件打不开!n"); menu(); for(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); num=i; fclose(fp); printf("n请输入学生姓名:"); scanf(&

39、quot;%s",name); printf("n叫该姓名的学生信息为:nn"); printf("姓名 性别 学号 年龄 班号 班名n"); for(i=0;i<num;i+) if(strcmp(name,stuinfoi.sname)=0) found=i; printf("%st%st%st%dt%st%sn",stuinfofound.sname,stuinfofound.sex,stuinfofound.sno,stuinfofound.age,stuinfofound.cinfo.cno,stuinfof

40、ound.cinfo.cname); if(found<0) printf("n没有找到该班号的记录!n"); printf("n请按enter键返回上级菜单!n"); getchar(); getchar(); quiry(); void bycno() int found=-1; int num; int i; char clano20; file*fp; if(fp=fopen("stuinfo.txt","r")=null) printf("文件打不开!n"); menu(); f

41、or(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); num=i; fclose(fp); printf("n请输入班号:"); scanf("%s",clano); printf("n该班级的学生信息为:nn");

42、printf("姓名 性别 学号 年龄 班号 班名n"); for(i=0;i<num;i+) if(strcmp(clano,stuinfoi.cinfo.cno)=0) found=i; printf("%st%st%st%dt%st%sn",stuinfofound.sname,stuinfofound.sex,stuinfofound.sno,stuinfofound.age,stuinfofound.cinfo.cno,stuinfofound.cinfo.cname); if(found<0) printf("n没有找到

43、该班号的记录!n"); printf("n请按enter键返回上级菜单!n"); getchar(); getchar(); quiry();void stastic() int chose; int right; do system("cls"); printf("nt1-全体男生t2-全体女生t3-全体学生t4-返回n"); printf("n请输入数字选择:"); scanf("%d",&chose); if(chose<1|chose>4) right=1;

44、 getchar(); else right=0;while(right=1);switch(chose) case 1:male();printf("n请按enter键返回上级菜单!n"); getchar(); getchar(); stastic();break;case 2:female();printf("n请按enter键返回上级菜单!n"); getchar(); getchar(); stastic();break;case 3:stumsg();printf("n请按enter键返回上级菜单!n"); getchar

45、(); getchar(); stastic();break;case 4:menu(); void male()/男生基本统计信息 int num; float mg; num=malenum(); mg=malemg(); printf("n男生总人数为:%dn平均年龄为:%fn",num,mg);int malenum() /男生人数 int num; int count=0; int i; file*fp; if(fp=fopen("stuinfo.txt","r")=null) printf("文件打不开!n&qu

46、ot;); menu(); for(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); fclose(fp); num=i; for(i=0;i<num;i+) if(strcmp("男",stuinfoi.sex)=0) count+; return c

47、ount;float malemg() /男生平均年龄 int num; int count=0; int found; float mage=0; int i; file*fp; if(fp=fopen("stuinfo.txt","r")=null) printf("文件打不开!n"); menu(); for(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.

48、sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); fclose(fp); num=i; for(i=0;i<num;i+) if(strcmp("男",stuinfoi.sex)=0) found=i; count+; mage+=stuinfoi.age; if(count>0) mage/=count; return mage;int femalenum() /女生人数 int num; int count=0; int i; file*fp; if(fp=fo

49、pen("stuinfo.txt","r")=null) printf("文件打不开!n"); menu(); for(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuinfoi.sname,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.cinfo.cno,&stuinfoi.cinfo.cname); fclose(fp); num=i; for(i=

50、0;i<num;i+) if(strcmp("女",stuinfoi.sex)=0) count+; return count;void female() /女生基本统计信息 int num; float mg; num=femalenum(); mg=femalemg(); printf("n女生总人数为:%dn平均年龄为:%fn",num,mg);float femalemg() /女生平均年龄 int num; int count=0; int found; float mage=0; int i; file*fp; if(fp=fopen("stuinfo.txt","r")=null) printf("文件打不开!n"); menu(); for(i=0;!feof(fp);i+) /读取文件 fscanf(fp,"%s%s%s%d%s%s",&stuin

温馨提示

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

评论

0/150

提交评论