2022年C语言课程设计实验报告学生信息管理系统 .pdf

上传人:Che****ry 文档编号:27263137 上传时间:2022-07-23 格式:PDF 页数:12 大小:327.33KB
返回 下载 相关 举报
2022年C语言课程设计实验报告学生信息管理系统 .pdf_第1页
第1页 / 共12页
2022年C语言课程设计实验报告学生信息管理系统 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年C语言课程设计实验报告学生信息管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言课程设计实验报告学生信息管理系统 .pdf(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C课题:学生信息管理系统设计报告人:阮家友方鹏飞叶成指导老师:严碧波孙祥娥报告日期: 2014 年 6 月 23 日语言课程设计实验报告名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - C语言课程设计实验报告2C语言课程设计实验报告1.设计目的:学生信息管理系统设计学生信息包括:学号、姓名、年龄、电话号码、性别、出生年月、QQ、班级等。试设计一学生信息管理系统,使之能提供以下功能:1.系统以菜单方式工作2.学生信息添加功能 -输

2、入3.查询功能 -算法按学号查询按姓名查询4.学生信息的删除与修改5.学生信息整表浏览功能 -输出2.总体设计:程序设计组成框图主菜单学生信息录入学生信息整表浏览信息查询按学号查询按姓名查询信息编辑按学号修改按学号删除名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - C语言课程设计实验报告3流程图case4case3case5case6case1case2case0结束N结束程序Y窗口展示载入链表判断 cmd!=0?主菜单显示输

3、入选择 cmdcmd开始调用add_info()调用serch_info调用serch_info调用delete_info调用delete_info调用preview_info(名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - C语言课程设计实验报告43.详细设计:1函数入口说明menu() 输出主菜单load_info()载入函数: txt 转为链表add_info(STU*h)增加学生信息search_info(STU*h,

4、int type) 搜索学生信息delete_info(STU*h)删除学生信息update_info(STU*h)修改学生信息output_info(STU*h)输出学生信息preview_info(STU*h,inttype) 预览学生信息main() 主函数2调用关系3参数说明add_info(STU*h) 、delete_info(STU*h)、output_info(STU*h)、preview_info(STU*h,inttype) 、search_info(STU*h,int type) 、update_info(STU*h)、函数中的STU*h 为传入的链表节点指针, type

5、 为搜索的方式:1 为输出传入节点指针的一条学生记录,2 为输出所有的学生记录。4.调试与测试:1调用STU* load_info()函数(文件载入) ,读写出现乱码解决方法:更改相应指针指向,及有关变量的初值设置。delete_info ()update_info ()load_info()add_info(STU*h)main()preview_info ()output_info()search_info()output_info()名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -

6、第 4 页,共 12 页 - - - - - - - - - C语言课程设计实验报告52边界测试解决方法:用极端的或偏门的情况来探测和验证代码在处理时会发生什么。3执行窗口执行多次命令后显示过多,不利于输入指令及结果查看解决方法:调用系统清屏函数system(cls); 。4文件在打开和保存时有问题。解决方法:调整文件的打开方式,从原来的单纯的w+修改为添加一个if 语句,当没有文件时执行w+的操作,否则执行r+。避免了原存储文件被覆盖的问题。5.源程序清单和执行结果:#include #include #include / 学生信息结构体typedef struct recordchar N

7、o10;char name12;unsigned int age;char sex4;char birth10;char qq12;char grade20;char phone11;struct record *next;STU;/ 菜单函数int menu();/ 载入函数:txt 转为链表STU* load_info();/ 增加学生STU* add_info(STU *h);/ 搜索函数STU* search_info(STU *h,int type);/ 删除学生STU* delete_info(STU *h);/ 修改学生信息void update_info(STU*h);/ 输出

8、信息void output_info(STU*h);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - C语言课程设计实验报告6/ 预览信息void preview_info(STU*h,int type);void main()STU*header=NULL,*sear=NULL;intcmd=1;system(title学生信息管理系统);/system(modecon cols=48 lines=25);system(dat

9、e /T);system(TIME /T);system(color3E);header=load_info();/preview_info(header,2);cmd=menu();while(cmd!=0)switch(cmd)case 0:break;/ 添加信息case 1:header=add_info(header);output_info(header);break;/ 学号查询case 2:sear=search_info(header,1);if(sear!=NULL)preview_info(sear,1);elseprintf( 该学生不存在!n);sear=NULL;b

10、reak;/ 姓名查询case 3:sear=search_info(header,2);if(sear!=NULL)preview_info(sear,1);elseprintf( 该学生不存在!n);sear=NULL;break;/ 按学号删除case 4:header=delete_info(header);output_info(header);break;/ 修改case 5:update_info(header);output_info(header);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

11、- - - - - - - 第 6 页,共 12 页 - - - - - - - - - C语言课程设计实验报告7break;/ 整表输出case 6:preview_info(header,2);break;default:printf( 无效的命令!n 请重新输入命令!n);break;if(cmd!=0)cmd=menu();int menu()int cmd=0;printf(n请输入命令: nt0: 结束程序 !nt1: 添加记录 !nt2: 按学号查询 !nt3: 按姓名查询!nt4:按学号删除信息!nt5: 按学号修改信息!nt6: 整表浏览 !n);scanf(%d,&cmd)

12、;while(cmd9)printf( 无效的命令 !n 请重新输入:n);scanf(%d,&cmd);return cmd;STU* load_info()FILE*fp=fopen(d:stu.txt,r+),*fpNew=NULL;STU*h=NULL,*q=NULL,*p=NULL;charch=0;h=(STU*)malloc(sizeof(STU);if(fp=NULL)fpNew=fopen(d:stu.txt,w);fclose(fpNew);return NULL;rewind(fp);ch=fgetc(fp);if(ch=EOF)return NULL;elserewin

13、d(fp);fscanf(fp,%10s %12s %3d %11s%4s %10s%12s %20s,h-No,h-name,&h-age,h-phone,h-sex,h-birth,h-qq,h-grade);q=h;q-next=NULL;ch=fgetc(fp);while(ch!=EOF)p=(STU*)malloc(sizeof(STU);p-next=NULL;fscanf(fp,%10s %12s %3d %11s%4s %10s%12s %20s,p-No,p-name,&p-age,p-phone,p-sex,p-birth,p-qq,p-grade);名师资料总结 - -

14、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - C语言课程设计实验报告8ch=fgetc(fp);q-next=p;q=q-next;fclose(fp);return h;STU* add_info(STU *h)FILE*fpin=fopen(d:stu.txt,a);STU*stu,*p;p=h;stu=(STU *)malloc(sizeof(STU);stu-next=NULL;system(cls);if(h=NULL)h=stu;p

15、rintf( 请输入学号:n);scanf(%s,h-No);printf( 请输入姓名:n);scanf(%s,h-name);printf( 请输入年龄:n);scanf(%d,&h-age);printf( 请输入手机号:n);scanf(%s,h-phone);printf( 请输入性别 :n);scanf(%s,h-sex);printf( 请输入出生年月日:n);scanf(%s,h-birth);printf( 请输入 qq:n);scanf(%s,h-qq);printf( 请输入班级 :n);scanf(%s,h-grade);elsewhile(p-next!=NULL)p

16、=p-next;p-next=stu;printf( 请输入学号:n);scanf(%s,stu-No);printf( 请输入姓名:n);scanf(%s,stu-name);printf( 请输入年龄:n);scanf(%d,&stu-age);printf( 请输入手机号:n);scanf(%s,stu-phone);printf( 请输入性别 :n);scanf(%s,stu-sex);printf( 请输入出生年月日:n);scanf(%s,stu-birth);printf( 请输入 qq:n);scanf(%s,stu-qq);printf( 请输入班级 :n);scanf(%s

17、,stu-grade);fclose(fpin);return h;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - C语言课程设计实验报告9STU* delete_info(STU *h)STU*p,*q;char no11;p=h;if(p=NULL)printf(t目前还没有信息记录!n);return NULL;elseprintf( 请输入一个学号:n);scanf(%s,no);q=p-next;if(strcmp(

18、h-No,no)=0)printf( 该学生信息已删除!n);h=h-next;elsewhile(q!=NULL)if(strcmp(q-No,no)=0)printf(t该学生的信息已删除!n);p-next=q-next;return h;elsep=q;q=q-next;printf( 该学生不存在!n);return h;STU* search_info(STU *h,int type)STU*p_temp=NULL,*q=h;p_temp=(STU *)malloc(sizeof(STU);system(cls);switch(type)case1:printf(t请输入一个学号:

19、nt);scanf(%s,p_temp-No);while(q!=NULL)if(strcmp(q-No,p_temp-No)=0)return q;elseq=q-next;return NULL;break;/ 按学号查询case2:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - C语言课程设计实验报告10printf(t请输入一个名字:nt);scanf(%s,p_temp-name);while(q!=NULL)if(

20、strcmp(q-name,p_temp-name)=0)return q;elseq=q-next;return NULL;break;/ 按姓名查询default:returnNULL;break;void update_info(STU*h)STU*q=NULL;unsigned int cmd=1,rec=1;system(cls);while(rec!=0)q=search_info(h,1);if(q=NULL)printf(t该学生不存在,无法进行修改操作!n);elsecmd=1;while(cmd!=0)system(cls);preview_info(q,1);printf

21、(nt0:修改完成,回主菜单!nt1: 修改该学生姓名!nt2: 修改该学生年龄!nt3:修改该学生手机号!nt4: 修改该学生性别!nt5: 修改该学生生日!nt6: 修改该学生qq 号!nt7: 修改该学生班级 !nt8: 修改下一个 !n);printf( 请输入命令:nt);scanf(%d,&cmd);switch(cmd)case0:cmd=0;rec=0;break;case1:printf(t请输入学生新的姓名:nt);scanf(%s,q-name);break;case2:printf(t请输入学生新的年龄:nt);scanf(%d,&q-age);break;case3:

22、printf(t请输入学生新的手机号:nt);scanf(%s,q-phone);break;case4:printf(t请输入学生新的性别:nt);scanf(%s,q-sex);break;case5:printf(t请输入学生新的生日:nt);scanf(%s,q-birth);break;case6:printf(t请输入学生新的qq 号: nt);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - C语言课程设计实验报

23、告11scanf(%s,q-qq);break;case7:printf(t请输入学生新的班级:nt);scanf(%s,q-grade);break;case8:cmd=0;break;/switch结束/ 内层 while 结束/ 外层 while 结束/ 函数结束void output_info(STU*h)FILE*fpin=fopen(d:stu.txt,w);STU*q=NULL;q=h;if(q!=NULL)fprintf(fpin,%-10s%-12s %4d %11s %-4s %-8s%-11s %20s,q-No,q-name,q-age,q-phone,q-sex,q-

24、birth,q-qq,q-grade);q=q-next;while(NULL!=q)fprintf(fpin,n%-10s%-12s %4d %11s %-4s %-8s%-11s %20s,q-No,q-name,q-age,q-phone,q-sex,q-birth,q-qq,q-grade);q=q-next;fclose(fpin);void preview_info(STU*h,int type)STU*p=NULL;p=h;system(cls);switch(type)case1:printf(=);printf(n该学生的完整信息为:nt学号: %-10snt姓名: %-12

25、snt 年龄: %-4dnt电话: %-11snt性别: %-4snt 生日: %-stntQQ号: %stnt班级: %-sn,h-No,h-name,h-age,h-phone,h-sex,h-birth,h-qq,h-grade);printf(=);break;case2:if(p=NULL)printf( 文件中没有信息!n);break;printf(=);while(p!=NULL)printf(nt学号: %-10snt姓名: %-12snt 年龄: %-4dnt电话: %-11snt性别: %-4snt 生日: %-stntQQ号: %stnt班级: %-sn,p-No,p-

26、name,p-age,p-phone,p-sex,p-birth,p-qq,p-grade);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - C语言课程设计实验报告12printf(=);p=p-next;break;default:break;6.实验心得:1)对 C语言的编程实践有所认识。2)在遇到程序调试不通过时,会通过缩小范围的分析来锁定问题所在。3)通过这次实验,熟悉了从自然语言转换成伪代码再转换为流程图的过程。4)在程序中设定合适的全局变量,可以简化程序的编写难度。5)运用函数可以减少编写时的代码量,也使程序条理清晰。6)通过本次 C语言上机实验,我们对这个介于人类与非人类之间的计算机编程语言有了一定的体验。随着实验的成功与报告的完成,有点微微的成就感使人难忘。伴随着学习的深入,我们发现高深的东西还有很多很多,等待着我们自己去挖掘。对C语言的学习,我们会加倍努力。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档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