版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计报告书学生证管理程序学号:姓名:SYF2010年 5月一、题目内容的提出与描述。大学学生人数众多,学生信息量巨大。手工管理十分艰难,且极易出错和丢失信息,并会占用大量的纸张和空间资源。本款软件就是基于对学生证管理的需求,为学校管理方量身定做,操作容易,快速便捷,并且节约能源。它不仅符合当今信息化社会的需求,还顺应了当代低碳环保的理念此软件可实现学生信息的录入、输出、查询、修改、统计和删除的功能,查询和统计的功能是本款软件的特色,比较方便。另外,因为本人笔记本为windows7系统,调试时无法在中文条件下运行,所以本款软件有中英文两个版本。(英文版为student-english)
2、二、软件的需求分析描述1.软件应具有的功能:(1).输入学生信息。(2).输出全部学生信息。(3).查询学生信息。输入单个学号以查询一个学生;输入专业以查询一专业学生;输入学院以查询一院学生。(4).修改学生信息。输入学生学号以修改信息。(5).统计学生信息。按性别统计男、女生人数及比例;按户籍统计本地生和外地生人数及比例;(6).删除学生信息。输入学生学号以删除信息。补充:教师有特定验证码(验证码为1),输入正确则可实行以上操作。2题目要求:(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2) 学生信息应该包含:学号、姓名、年龄、专业、所属学院、户籍所在地。(3)
3、为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。三、开发工具的介绍本软件采用色开发工具为C语言。C语言Combined Language(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,且具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用
4、这种方法编写的。归纳起来C 语言具有下列特点:1. C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来,可以像汇编语言一样对位、字节和地址进行操作。2.C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大。4. C语言适用范围大。适合于多种操作系统
5、,多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。5.C语言文件由数据序列组成,可以构成二进制文件或文本文件。四、软件的总体设计和详细设计。【总体设计】1、软件的总体设计部分的结构图输入查询统计修改删除按学号按专业按学院按性别按户籍进入主菜单学生证管理系统输入验证码正确错误菜单重试退出输出全部2.各模块函数作用简介因为所用信息为全局变量,所以各函数间无传值或传址函数名主要作用调用及数据传输关系main()-主函数检验验证码是否正确(
6、验证码为1);若正确则显示主菜单,进入下面操作;若错误可选择重新输入或退出。调用了menu();一部分调用了tuichu().tuichu()-退出函数显示“感谢使用”“孙亚飞制作”等结束语,并可实现退出操作;避免了重复语句。被main(),menu()调用;menu()主菜单函数显示主菜单;用户可输入选项后可转向对应模块进行下面操作。分别调用了 tuichu(),input(), printall(),search(),tongji(),modify(),del();也被main()及以上函数调用;input()-输入函数输入要添加的学生人数,之后可输入对应人数的学生的信息;操作完可返回主菜
7、单。被menu()调用,也调用menu();printall()-输出全部函数可输出全部学生的信息;操作完可返主回菜单。被menu()调用,也调用menu();search()-查询函数通过一个菜单可选择输入单个学号以查询一个学生的信息,输入专业名查询一班学生的信息,输入学院名查询一院学生的信息。操作完可返回主菜单。被menu()调用,也调用menu();tongji()-统计函数通过一个菜单可选择按性别统计男、女生人数及比例或按户籍统计本地生和外地生人数及比例;操作完可返回主菜单。被menu()调用,也调用menu();modify()-修改函数通过输入一个学生学号以修改其信息;操作完可返回
8、主菜单。被menu()调用,也调用menu();del()-删除函数通过输入一个学生学号以删除其信息;操作完可返回主菜单被menu()调用,也调用menu();结构体为全局变量:struct studentlong number;char name5;char sex;int age;char college15;char major10;char hukou10;stuN;定义全局变量指针FILE *fp;【详细设计】1.各模块函数框图(1).main()-主函数while判断验证码输入验证码开始重新输入/退出TF重新输入退出tuichu()函数进入主菜单menu()(2) tuichu()
9、-退出函数开始退出输出结束语(3). menu()主菜单函数switchprintf显示菜单开始结束input()函数printall()函数modify()函数search()函数tuichu()函数del()函数tongji()函数case1case2case3case4case5case6case7(4). input()-输入函数TFTF开始输入要添加的学生人数n创建一个文件in+1i=1i+输入学生信息Tstui.number!=0i+i=1T回到主菜单menu()判断fp是否为空显示无法打开文件fwrite!=1显示写入错误(5). printall()-输出全部函数FTF开始in
10、+1i=1i+输出学生信息T打开文件读文件max+feof(fp)max=0回到主菜单menu()没有信息T(6).search()-查询函数T开始If选项显示本模块菜单FiN+1i=1i+读文件Tfeof(fp)Max+输入选项后面的流程图转下页TF输入要查找的学生的学号cTFimax+1i=1i+输出该学生信息d+d=0TStui学号为c输入要查找的专业的名称m与第一种情况流程图相同将Stui学号为c改为Stui专业为m将c改为改为显示没有该学生信息与第一种情况流程图相同将Stui学号为c改为Stui专业为n将c改为改为输入要查找的学院的名称回到主菜单menu()123 (7).tongj
11、i()-统计函数FTT前面部分流程图与search()函数第一页流程图相同If选项12开始Fimax+1i=1i+stui性别为男Sum2+Sum1+输出统计信息Sum1为0且sum2为0T显示无法统计FTTFimax+1i=1i+stui性别为男Sum2+Sum1+输出统计信息Sum1为0且sum2为0T显示无法统计回到主菜单menu() (8).modify()-修改函数TTT输入修改后的信息输入要修改的学生学号i+写入文件回到主菜单menu()T开始FiN+1i=1i+读文件feof(fp)Max+Timax+1i=1stui学号为c将修改后的信息付给stuid=0d+stui学号为cF
12、显示无该学生信息,无法修改转右侧 ().del()-删除函数转右侧TTT输入修改后的信息输入要修改的学生学号i+写入文件回到主菜单menu()T开始FiN+1i=1i+读文件feof(fp)Max+Timax+1i=1stui学号为c将修改后的信息付给stuid=0t=istui学号为cF显示无该学生信息,无法删除五、资源描述计算机需装有winTc软件。计算机的配置:windows Xpvista/7系统:只能运行英文版windows Xp:中、英文两个版本均可运行六、源代码#define N 20#include stdio.hstruct studentlong number;char n
13、ame20;char sex;int age;char college20;char major20;char hukou20;stuN;FILE *fp; /* 全局变量 */*-主函数-*/main()struct student stuN;int a,b; printf(请输入验证码:n); /* 验证码为1 */scanf(%d,&a);while(a!=1) printf(验证码错误!n); printf(1:重新输入n2:退出n); printf(您的选择是(输入代号):); scanf(%d,&b); if(b=1) printf(请输入验证码:n); scanf(%d,&a);
14、 else tuichu(); menu();/*-退出函数-*/tuichu()printf(nn感谢使用本系统!);printf(n孙亚飞制作于2010年);getch();exit(0);/*-主菜单-*/menu()int c;printf(n*n);printf( 欢迎使用本系统!nn);printf(1:输入学生信息n);printf(2:输出全部学生信息n);printf(3:查询学生信息n);printf(4:统计学生信息n);printf(5:修改学生信息n);printf(6:删除学生信息n);printf(7:退出系统n);printf(*nn);printf(您的选择是
15、(输入代号):);scanf(%d,&c);switch(c) case 1:input(stu);break; case 2:printall(stu);break; case 3:search(stu);break; case 4:tongji(stu);break; case 5:modify(stu);break; case 6:del(stu);break; case 7:tuichu();break; /*-输入部分-*/input(struct student stu)int i,n;fp=fopen(stu_list,a+);printf(nn请输入要添加的学生的人数:n);s
16、canf(%d,&n);for(i=1;in+1;i+) printf(n第%d个学生,i); printf(n请输入学生学号(取后7位):); scanf(%ld,&stui.number); printf(n请输入学生姓名:); scanf(%s,&); printf(n请输入学生性别(填“m”或“f”):); scanf(%s,&stui.sex); printf(n请输入学生年龄:); scanf(%d,&stui.age); printf(n请输入学生学院名称:); scanf(%s,&stui.college); printf(n请输入学生专业:); scanf(
17、%s,&stui.major); printf(n请输入学生户口所在地(北京写作“beijing”):);scanf(%s,&stui.hukou);if(fp=fopen(stu_list,a+)=NULL) printf(无法打开文件n);for(i=1;stui.number!=0;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(写入错误n);fclose(fp);menu();/*-输出部分-*/printall(struct student stu)int i,max=0;fp=fopen(stu_list,r)
18、;for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp) fclose(fp); break; max+; fp=fopen(stu_list,r);if(max=0) printf(n没有信息!n);else printf(学号t姓名t性别t年龄t学院t专业t户口n); for(i=1;imax+1;i+) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.college,stui.major,stui.
19、hukou); fclose(fp);getch();menu();/*-查找部分-*/search(struct student stu)int c,i,max=0,d=0,e=0,f=0;long g;char m20,n20;fp=fopen(stu_list,r);printf(n1:查询单个学生信息);printf(n2:查询一个专业学生);printf(n3:查询一学院学生);printf(n您的选择是(输入代号):);scanf(%d,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp
20、) fclose(fp); break; max+; fp=fopen(stu_list,r);if(c=1) printf(nn请输入要查找的学生的学号:); scanf(%ld,&g); printf(学号t姓名t性别t年龄t学院t专业t户口n); for(i=1;imax+1;i+) fread(&stui,sizeof(struct student),1,fp); if(stui.number=g) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.college,stui.majo
21、r,stui.hukou); d+; if(d=0) printf(n没有相关信息!n); else if(c=2) printf(nn请输入要查找的专业的名称:); scanf(%s,m); printf(学号t姓名t性别t年龄t学院t专业t户口n); for(i=1;imax+1;i+) fread(&stui,sizeof(struct student),1,fp); if(strcmp(stui.major,m)=0) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.college
22、,stui.major,stui.hukou); e+; if(e=0) printf(n没有相关信息!n); else printf(nn请输入要查找的专业的名称:); scanf(%s,g); printf(学号t姓名t性别t年龄t学院t专业t户口n);for(i=1;imax+1;i+) fread(&stui,sizeof(struct student),1,fp); if(strcmp(stui.college,n)=0) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.coll
23、ege,stui.major,stui.hukou); f+; if(f=0) printf(n没有相关信息!n); fclose(fp);getch();menu();/*-统计部分-*/tongji(struct student stu)int c,i,sum1,sum2,sum3,sum4,max;float d,e,f,g;sum1=0;sum2=0; sum3=0; sum4=0; max=0;fp=fopen(stu_list,r);printf(n1:统计男女生人数及比例);printf(n2:统计本地生与外地生的人数及比例);printf(n您的选择是(输入代号):);scan
24、f(%d,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp) fclose(fp); break; max+; if(c=1) for(i=1;imax+1;i+) if(stui.sex=m) sum1+; else sum2+; if(sum1=0&sum2=0) printf(没有相关信息 无法统计!); else printf(n男女生人数分别是:%d %d,sum1,sum2); d=(float)sum1/(sum1+sum2)*100; e=(float)sum2/(sum1+sum
25、2)*100; printf(n男生人数比例为%.2f%,d); printf(n女生人数比例为%.2f%,e); else for(i=1;imax+1;i+) if(strcmp(stui.hukou,beijing)=0) sum3+; else sum4+; if(sum3=0&sum4=0) printf(没有相关信息 无法统计!); else printf(nn本地生与外地生人数分别是:%d %d,sum3,sum4); f=(float)sum3/(sum3+sum4)*100; g=(float)sum4/(sum3+sum4)*100; printf(n本地生比例为:%.2f
26、%,f); printf(n外地生比例为:%.2f%,g); fclose(fp);getch();menu();/*-修改部分-*/modify(struct student stu)int i,d=0,max=0;long c;struct student st1;fp=fopen(stu_list,r);printf(请输入要修改的学生的学号:);scanf(%ld,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp) fclose(fp); break; max+; if(stui.numb
27、er=c) d+; if(d=0) printf(n没有相关信息 无法修改!n);else printf(n请输入学生学号(取后7位):); scanf(%ld,&st0.number); printf(n请输入学生姓名:); scanf(%s,&); printf(n请输入学生性别(填“m”或“f”):); scanf(%s,&st0.sex); printf(n请输入学生年龄:); scanf(%d,&st0.age); printf(n请输入学生学院名称:); scanf(%s,&st0.college); printf(n请输入学生专业:); scanf(%s,&st0
28、.major); printf(n请输入学生户口所在地(北京写作“beijing”):);scanf(%s,&st0.hukou);fp=fopen(stu_list,r);for(i=1;imax+1;i+) if(stui.number=c) stui.number=st0.number; stui.sex=st0.sex; stui.age=st0.age; strcpy(,); strcpy(stui.college,st0.college); strcpy(stui.major,st0.major); strcpy(stui.hukou,st0.hu
29、kou); fclose(fp);fp=fopen(stu_list,w);for(i=1;imax+1;i+) fwrite(&stui,sizeof(struct student),1,fp);fclose(fp);getch();menu();/*-删除部分-*/del(struct student stu)int t,i,max=0;long c;fp=fopen(stu_list,r);printf(请输入要修改的学生的学号:);scanf(%ld,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(stui
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024解除劳动合同证明书范文及注意事项
- 2024补偿贸易设备进口合同书范本
- 食品安全总监考试练习试题附答案
- 2月份消毒供应中心业务学习、制度职责、应急预案、三基理论考试专项试卷
- 2024年炼油、化工生产专用设备项目建议书
- 交付检查体系及标准考试复习测试有答案
- 人员素质测评理论与方法复习试题(一)
- 2024年食品筛选清洗机械合作协议书
- 2024造价技术咨询服务合同范本
- 小区安全防范管理协议(2024年版)
- 部编版一年级下册语文单元教材分析及教学要点
- 渝建竣表格新表(精编版)
- (完整版)家具项目实施方案
- 小学科学一年级下册教材分析(共3页)
- 优秀校长的政治素养与养成讲述
- 河北省滦平县东北部冶金矿产工业区发展规划
- 蓝牙测试项及其标准
- 第二章接待礼仪拜访礼仪馈赠礼仪
- 钢结构拆除的施工协议书
- 旅游列车开行管理办法
- 园区网络规划与设计管理 毕业设计
评论
0/150
提交评论