版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书课程名称C语言课程设计课 题班级档案管理系目录1. 设计目的2. 总体设计3. 详细设计4. 调试与测试:可编辑范本5. 总结与体会6评分附:源程序清单和执行1设计目的a)了解和掌握c语言面向对象程序设计的基本过程。b)进一步熟悉C语言的特点。c)学会总体规划一个程序,从各个部分把一个程序完成好。d)能够使自己的程序实现一定的功能,对 C+产生一种浓厚的兴趣。e)培养耐心,遇困难不退缩。f)了解团队精神的重要性,团结合作。加深对C语言课程所学知识的理解,进一步巩固C语言讲法可编辑范本规则。学会编制结构清晰、风格良好、数据结构适当的 C 语言程序, 从而具备解决综合性实际问题的能力
2、。在熟练掌握 C 语言的基本知识:数据类型(整形、实型、字符 型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自 减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结 构);大程序的功能分解方法 (即函数的使用) 等。进一步掌握各种函 数的应用,以及文件的读写操作等。2 总体设计主菜单界面学生档案管理土木工程*班*1. 录入学生信息2. 显示学生信息3. 查询学生信息4. 删除学生信息可编辑范本5. 添加学生信息6. 修改学生信息7 退出*谢谢使用*信息录入1 按学号查询2 按姓名查询3 按性别查询4 按年龄查询3.详细设计本程序由一个 Void main(),个 Voi
3、d input(),个 Void Save(), 个 Void display。一个 Void Delete() 一个 Void add 和一个 Void Search(共七 个主要函数来实现该程序的编程的。其中在主函数Void mai n()中调用其他六个函数,通过Switch语句来实现调用进入各个函数,进入主菜 单通过录入函数录入学生信息,并自动保存在 cstudent.txt 中。学生 信息输入应用了结构数组,学生信息主要包括姓名,学号,性别,年 龄以及备注。其中年龄为整型,其他为字符型。调用函数时,学生信 息运用 了指针数组,女口 void Modfiy(struct student*
4、 arr,int n)在Void Delete(调用函数中,当bool flag二ture是该学生不存在,即已被删 除。在Void search(调用函数中,当bool flag=ture是该学生存在,即 已被查询到。当flag二false时则说明没有该学生信息。在查询系统中, 有四种查询方式,分别是按姓名查询,按学号查询,按性别查询和按 年龄查询。四种查询方式用 Switch语句连接起来,进入每种查询方式 要输入所需信息才能进入。该程序最大的特点是Switch连接各调用函数和各查询方式以及结构数组的运用,将各函数有序的连接起来。 各个调用函数功能的实现如下:1) 信息的录入主要运用循环语句将
5、各个学生信息依次输入2) 信息的显示也是用循环语句将各个学生信息显示出来。3) 信息的保存是将信息重写到保存到的文件位置,其中信息保存在 c:student.text4) 信息的删除是运用字符串复印函数,将空格复印到信息字符上达 到删除效果。5) 信息的修改是输入学号用循环语句将需修改的信息显示出来,然 后再输入新的信息6) 信息的查询是通过Switch语句将查询方式连接起来,并在各个查 询方式中用循环语句将要查询的信息显示出来。4调试与测试初步调试的结果出现问题较多,经过多次修正和调试解决了 许多问题 ,调试完成后进入主菜单按 1 录入学生信息,录入学生信息 后可以通过提示按学号,姓名,性别
6、,年龄进行查询。还能按 5 添加 学生信息,按 6 修改学生信息,按 7退出。5心得与体会终于可以松口气了 ,经过一个思考 ,查资料,写源程序,上机调试, 现在终于告一段落了。看到自己的劳动成果 ,心中不免有些惊喜,没想 到自己还能独立完成初次的课程设计。这种课程设计是枯燥无味的 但对 C 语言这门程序语言的掌握却有非常大的作用 .。从开始对题目的 分析 ,就注定摆在我这样一个对 C 语言了解不多的新手面前的是一段 艰难的旅程 .但最终很庆幸的是我居然能够坚持下来, 而且完成了设计 工作。C 语言是很难学的,这也许是因人而异 ,但对我来说确实是一个障 碍。如今要自己完成一个课程设计,无疑是对自
7、己的一个挑战 .先是上 可编辑范本网查找有关的资料,分析题目所需的数据 ,要用到哪些函数等等,星期二上网初步调试,将函数用些结构和语句连接起来,做这个工作时, 又将书本翻阅了一遍,重新获得许多东西。如带参函数的特点,以及 一些语句的运用及特点等等。将工作分配到每块是我完成这个设计的 主要方法, 然而将每块都完成看起来比较轻松 ,但实际操作起来却是比 较麻烦的。由于平时对 C 语言知识的积累较为匮乏 ,(这可能是最主要 的原因了 ),所以操作起来真是寸步难行 ,没办法,只有拿出课本找到相应 的知识点 ,临阵磨枪 .费了一番功夫,再上机调试时就是最痛苦的时候 了,错误一大堆,要一个一个的修改。经过
8、几翻调试修改之后终于可 以执行了,那时还兴奋了好长时间呢!然而执行出来的结果是不令人 满意的,界面不美观不说,最重要的是输入太烦琐,而且受到的限制 太多,如只能以某种方式输入,且个数受限制。于是又发费了大量时 间去修改,终于比较满意了, 但也到了星期五了, 也就是答辩的时间。 答辩的时候我才发现还有好多知识是我不会的, 老师问了我一些问题, 我回答出来的却不多,我体会到我还要很努力的学习,在 C 语言的学 习上我还有很长的一段路要走。今天不管怎样把这个设计作出来是件 很高兴的事情,不过能够把这个设计顺利完成要归功于我的指导老师, 帮了我很多忙, 也让我发现了我有好多欠缺的地方, 真的很感谢你们
9、, 谢谢!但不管怎么样,我还是完成了这个设计。虽说累了点,但我想这 对我们进一步掌握 C 语言,并为下学期的计算机二级考试是有很大的 帮助的 .。能够编出程序,其实本身就是对自己的一种肯定,是对自己前面一段时间学习C语言综合水平的一个检阅当然完成后的兴喜,只 有经历过了才能体会到。 而我体会到了 .课程设计是培养学生综合运用 所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要 环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术 发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因 此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。源程序#include #i
10、nclude #include #include #define N 100 struct studentint num;char name10;char sex;int age;char xueli30;char beizhu50;char addr30;long int tel;st100;/* 定义一个结构体 */void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_name();void search
11、_sex();void search_age();void modify(); /* 定义各函数 */void menu() /* 菜单函数 */printf(土木工程n ”);八 n);printf(n);printf( printf(n);可编辑范本printf( printf( printf( printf( printf( printf( printf( printf( printf(学生档案管理1.录入学生信息 );2. 显示学生信息 n);3. 查询学生信息 );4. 删除学生信息 n);5. 添加学生信息 );6.修改学生信息 n);谢谢使用*n);*n);printf(n);p
12、rintf(n);void main()menu(); /* 调用菜单函数 */int n,flag;char a;doprintf( 请选择你需要操作的步骤(1-7):n);scanf(%d,&n);if(n=1&n=7)flag=1; break;elseflag=0;printf( 您输入有误,请重新选择 !);while(flag=0);while(flag=1)switch(n) 输 入学 生信息显示学生信息 按学号查询学生信息case 1:printf( n);printf(n);input();break;case 2:printf(n);printf(n);display();
13、break;case 3:printf(删除学生信息n);pri ntf(n);del();break;添加学生信息n);pri ntf(n);add();break; 修 改 学 生 信 息 n);printf(n);search();break;case 4:printf(case 5:printf(case 6:printf(n);printf(n);modify();break;case 7:exit(0);break; default :break;getchar();printf(n);printf( 是否继续进行 (y or n):n); scanf(%c,&a);if(a=y)
14、flag=1;system(cls); /* 清屏 */menu(); /* 调用菜单函数 */ printf( 请再次选择你需要操作的步骤(1-7):n);scanf(%d,&n);printf(n);elseexit(0);void input() /* 录入函数 */int i,m;printf( 请输入需要创建信息的学生人数(1-100):n);scanf(%d,&m);for (i=0;im;i+)printf( 请输入学号: );srand(int)time(0);sti.num=rand()%10000+20000000;if(sti.num!=sti-1.num)printf(
15、%8d ,sti.num);printf(n);printf( 请输入姓名 : );scanf(%s,);getchar();printf( 请输入性别 (f- 女 m-男 ): );scanf(%c,&sti.sex);printf( 请输入年龄 : );scanf(%d,&sti.age);printf( 请输入备注 : );scanf(%s,&sti.beizhu);printf(n);printf(n 创建完毕 !n);save(m);void save(int m) /* 保存文件函数 */int i;FILE*fp;if (fp=fopen(c:student.tx
16、t,wb)=NULL)printf (cannot open filen);exit(0);for (i=0;im;i+) /* 将内存中学生的信息输出到磁盘文件中去 */ if (fwrite(&sti,sizeof(struct student),1,fp)!=1) printf(file write errorn);fclose(fp);int load() /* 导入函数 */FILE*fp;int i=0;if(fp=fopen(c:student.txt,rb)=NULL)printf (cannot open filen);exit(0);elsedo fread(&sti,si
17、zeof(struct student),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);void display() /* 显示函数 */int i;int m=load();printf(n 学号 t 姓名 t 性别 t 年龄 t 备注 n); for(i=0;im;i+) /*m 为输入部分的学生人数 */printf(n %dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli, sti.beizhu,sti.addr,sti.tel);void del(
18、) /* 删除函数 */int m=load();int i,j,n,t,flag;char name20;printf(n 原来的学生信息 :n);display(); /* 调用显示函数 */ printf(n);printf( 请输入要删除的学生的姓名 :n);scanf(%s,name); for(flag=1,i=0;flag&im;i+)if(strcmp(,name)=0)printf(n 已找到此人,原始记录为: n);printf(n 学号t姓名t性别t年龄t备注 n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,sti
19、.name,sti.sex,sti.age,sti.xueli,sti .beizhu,sti.addr,sti.tel);printf(n 确实要删除此人信息请按1,不删除请按 0n);scanf(%d,&n);if(n=1)/* 如果删除,则其他的信息都往上移一行 */for(j=i;jm-1;j+)strcpy(,stj+1.name); stj.num=stj+1.num; stj.sex=stj+1.sex; stj.age=stj+1.age;strcpy(stj.xueli,stj+1.xueli); strcpy(stj.beizhu,stj+1.beizhu)
20、;strcpy(stj.addr,stj+1.addr); stj.tel=stj+1.tel;flag=0;if(!flag)m=m-1;elseprintf(n 对不起,查无此人 !n);:n);0n);printf(n 浏览删除后的所有学生信息 save(m); /* 调用保存函数 */ display(); /* 调用显示函数 */ printf(n 继续删除请按 1,不再删除请按 scanf(%d,&t);switch(t)case 1:del();break;case 0:break;default :break;void add()/* 添加函数 */FILE*fp;int n;
21、int count=0;int i;int m=load();printf(n 原来的学生信息 :n); display(); /* 调用显示函数 */ printf(n);fp=fopen(student_list,a);printf( 请输入想增加的学生数 :n);scanf(%d,&n);for (i=m;i=1&t=5)flag=1;break;elseflag=0;printf( 您输入有误,请重新选择 !); while(flag=0); while(flag=1)switch(t)case 1:printf(按学号查询 n);search_num();break;case 2:p
22、rintf(按姓名查询 n);search_name();break;case 3:printf(按性别查询 n);search_sex();break;case 4:printf(按年龄查询 n);search_age();break;case 5:main();break;default:break;void search_num()int num;int i,t;int m=load();printf( 请输入要查找的学号 :n);scanf(%d,&num);for(i=0;im;i+)if(num=sti.num)printf(n 已找到此人,其记录为: n);printf(n 学号
23、t姓名t性别t年龄t备注 n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti .beizhu,sti.addr,sti.tel);break;if(i=m)printf(n 对不起,查无此人 n);printf(n);printf( 返回查询函数请按1,继续查询学号请按2n);scanf(%d,&t);switch(t)case 1:search();break;case 2: break; default:break; void search_name()char name10
24、;int i,t;int m=load();printf( 请输入要查找的姓名 :n); scanf(%s,name);for(i=0;im;i+) if(strcmp(,name)=0)printf(n 已找到,其记录为: n); printf(n 学号t姓名t性别t年龄t备注 n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti .beizhu,sti.addr,sti.tel);if(i=m)printf(n 对不起,查无此人 n);printf(n);pri
25、ntf( 返回查询函数请按1,继续查询姓名请按2n);scanf(%d,&t);switch(t)case 1:search();break;case 2:break;default :break;void search_sex()char sex;int i, t;int m=load();printf( 请输入要查找的性别 :n);scanf(%c,sex);for(i=0;im;i+)if(sex=sti.sex) printf(n 已找到此人,其记录为: n);printf(n 学号t姓名t性别t年龄t备注 n);printf(n%dt%st%ct%dt%st%st%st%ldn,st
26、i.num,,sti.sex,sti.age,sti.xueli,sti .beizhu,sti.addr,sti.tel);break;if(i=m)printf(n 对不起,查无此人 n);printf(n);printf( 返回查询函数请按1,继续查询性别请按2n);scanf(%d,&t);switch(t)case 1:search();break;case 2:break;default :break;void search_age()int age;int i, t;int m=load();printf( 请输入要查找的年龄 :n);scanf(%d,&age)
27、;for(i=0;im;i+)if(age=sti.age)printf(n 已找到此人,其记录为: n);printf(n 学号t姓名t性别t年龄t备注 n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti .beizhu,sti.addr,sti.tel);break;if(i=m)printf(n 对不起,查无此人 n);printf(n);printf( 返回查询函数请按1,继续查询年龄请按2n);scanf(%d,&t);switch(t)case 1:search();break;case 2:break;default :break;void modify() /* 修改函数 */int num;char name10;char sex;int age;char xueli30;char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 争议地皮协议书范本
- 入股协议还入股合同
- 与律所战略合同协议
- 丧事承办协议书模板
- 银行外包贷款合同范本
- 企业期权分红协议书
- 高性能计算资源调度优化方案
- 农田污染源检测与环境风险评估方案
- 入住酒店合同协议书
- 钢结构安装精度提升管理方案
- 机械设备安全检查表88612
- 幼儿园绘本教学中师幼互动策略研究 论文
- 培智二年级体育课教案
- 不可不知的1000个处世常识
- 汽车维修保养服务单
- 300MW电气运行规程
- GA/T 1246-2015道路交叉口发光警示柱
- DB37-T 4328-2021 建筑消防设施维护保养技术规程
- 基于核心素养导向的初中数学试题命制策略与实例课件
- 《消防安全技术实务》课本完整版
- 深水质表59沟(渠)清淤单元工程施工质量验收评定表
评论
0/150
提交评论