数据结构课程设计学生籍贯管理系统

上传人:ba****u6 文档编号:204117778 上传时间:2023-04-26 格式:DOCX 页数:20 大小:164.89KB
返回 下载 相关 举报
数据结构课程设计学生籍贯管理系统_第1页
第1页 / 共20页
数据结构课程设计学生籍贯管理系统_第2页
第2页 / 共20页
数据结构课程设计学生籍贯管理系统_第3页
第3页 / 共20页
点击查看更多>>
资源描述
目录1设计内容及要求11.1课程设计要求11.2学生籍贯管理系统的要求12程序设计环境及设计思想12.1软件设计环境12.2 设计思想 13数据保存方式以及格式24模块的调用、划分与功能图24.1各软件模块之间的调用方式24.2系统完成功能24.3功能框图显示35界面设计35.1学生籍贯管理系统公共数据结构76小结7参考文献8附录:程序源代码91设计内容及要求1.1课程设计要求1. 要求利用C语言面向过程的编程思想来完成系统的设计;2. 突出C语言的函数特征,以多个函数实现每一个子功能;3. 画出功能模块图;4. 进行简单界面设计,能够实现友好的交互;5. 具有清晰的程序流程图和数据结构的详细定义;6. 熟练掌握C语言对文件的各种操作。1.2学生籍贯管理系统的要求该程序应该具有下列功能:(1)输入学生信息并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6)显示输出天津籍和非天津籍学生的信息并可分别存盘;2程序设计环境及设计思想2.1软件设计环境Microsoft Visual C+ 6.02.2设计思想该程序运用了结构体数组的输入,输出,修改及存储,采用循环的方式对程 序进行编写,同时也采用循环的方式对程序进行输入、显示、查询、检索、删除、 编辑等操作。实现编程的意义。3数据保存方式以及格式本学生信息系统将能自动把输入的学生信息保存为C: /data .txt文件中,在 文件的读取时,系统将能自动把该二进制文件读出,并在屏幕上显示出学生信息。 前提是必须在C盘中创建data.txt文件。4模块的调用、划分与功能图4.1各软件模块之间的调用方式程序中各个模块之间的调用方式主要是通过函数的调用实现的。先使用主函 数调用框架函数,然后在框架函数中调用不同功能的函数,达到对学生信息管理 的目的。4.2系统完成功能每条记录包括一个学生学号、姓名、籍贯。1、输入功能:可以一次完成无数条记录的输入。2、显示功能:完成全部学生记录的显示。3、查找功能:完成按姓名、学号查找学生记录,并显示。4、修改功能:通过查找学生姓名、学号,修改学生记录。5、保存功能:将学生记录保存到任何自定义的文件中。6、读取功能:将保存到文件中的学生记录读取出来。7、分类功能:分别显示天津籍跟非天津籍的学生并分别存盘,且根据需要 显示出来。8、应提供一个界面来调用各个功能,调用界面和功能的操作界面应尽可能清晰美观。4.3功能框图显示主要功能5界面设计功能主界面提供了良好的控制台界面,能够方便的根据功能采取相应的操 作,简单明了,去除了复杂、多余的步骤。当输入不符合要求时,则会显示相应的提示。运行程序时,该程序显示的主界面显示如下:.三8.- 生录番与 学记蠢号tE将 亩-一一斗姓籍津 ”工 EK 阱L.苗道.问.-J iRA榆皿俺若若杏即图i输入功能号:1,则显示已经存入的学生籍贯信息记录1息 一 K 一IIkT当富EmF学-in.辂号侦哥籍白匕.一折一亨、灶胡津 gB询询询亍 退查输否一查易理B芳源 mi喜淬涪归津安安天上沈六L20821B114 1208210115 L20S21H11E 120S210117 1209210116 1208210119I挟回立键返回土菜单-图2输入功能号:2,则显示删除学生记录界面学生籍岌管理弟可青输板为花号质f】;33披回亡罹返回主菜年青输+=1208210115曰心 八 -一1 - 生录富只m-LT 学记卜籍号亩箱 有r_x=w蛙藉津 4黄询向询! 保香_输1查查昂图3输入功能号:3,显示修改学生籍贯界面.青输入功能号国-力:4借输入要编辑学主=1208210114籍宾天津博回生键返回王菜单H|itudioCommoriMDe98IBinDebughuxi-aofang-exc图4JH天 Hrr息 三EE录录 学记记籍号歹铝压稽 有-J.一兰芋北籍津 所章学.;.天 4qwA.涂改询询.迥-退查输制修查查查呈输入功能号:7,显示查询所有上海籍的学生学生籍君管理系说言所有-詈,|信岛4-亍生记录查询(学号j查询(姓套)查询(籍震)昂示天津藉与上云津藉、人人艾按回车键返回主#平一一 一籍贯 上海 沈阳输入功能号:8,显示天津籍跟非天津籍的学生图6除笥?询询询一 丁 翔册塞u香香昱录蕃# 记记籍号JSE箝 -JE兰孕姓籍津籍天天天51学生籍贯管理系统公共数据结构-%在学生籍贯管理系统中使用的公共数据结构例举如下:#define MAX300 定义常量N表示可录入最大学生数inti,j、k,sum,i表示第几位学生,jk都用来存放赋的值,sum表 示查询时该学生不存在的学生数0人int count存放学生总人数int i 变量i存放循环次数struct student 定义一个名为student的结构体,这个结构体定义了 学生的基本信息char no定义学生的学号char name定义学生的姓名char ad定义学生的籍贯int b 用来跳出某项功能struct student、struct student stuMAX,定义两个结构体,两者是嵌 套的。dd是全局的结构体变量名6小结通过这次课设,我学会了如何把数据结构的知识应用到实践当中,同时也进 一步加深了对c/c+语言语法的应用,以及深刻的掌握了数据结构和c/c+语言的 结合运用。在编程过程中,遇到了许多问题,在一次次的运行错误后,总是发现问 题的所在,并且一步步加以改正,也从中学到了许多知识,感觉又重新学习了一 次数据结构课程。虽然我的程序还不够完善,还需加以改进以实现更多的功能, 但是我会尽我最大的努力去完成它,我相信我会努力去把程序做的更加完美。参考文献1 严蔚敏、吴伟民编著.数据结构(C语言版).清华大学出版社。2 藤国文等编著.数据结构课程设计.北京:清华大学出版社。3 齐景嘉编著.数据结构(含实训).东南大学出版社。4 朱儒荣、朱辉等编著.数据结构常见题型解析与模拟题西北工业大学 出版社。5 徐孝凯,贺桂英等编著.数据结构(C语言描述).清华大学出版社。6 徐孝凯编著.数据结构实用教程.北京:清华大学出版社。7 严蔚敏,陈文博编著.数据结构及算法教程.北京:清华大学出版社。8 刘振安,刘燕君等编著.C程序设计课程设计.北京:机械出版社。9 李建学、李光元、吴春芳等编著.数据结构课程设计案例精编.清华 大学出版社。附录:程序源代码#include #include #include #include #define MAX 300struct studentchar name10;/ 姓名char no50;/ 学号char ad20;籍贯;struct data int count;/当前学生数组中学生的个数struct student stuMAX; / 学生数组 dd;/显示主菜单void menu()system(cls);printf(n);printf(ttt*n);printf(ttt*n);printf(ttt*学生籍贯信息记录簿*n);printf(ttt*n);printf(ttt*0退出*n);printf(ttt*1查看所有学生信息*n);printf(ttt*2输入学生记录*n);printf(ttt*3删除学生记录*n);printf(ttt*4修改学生籍贯*n);printf(ttt*5查询(学号)*n);printf(ttt*6查询(姓名)*n);printf(ttt*7查询(籍贯)*n);printf(ttt*8显示天津籍与非天津籍*n);printf(ttt*n);printf(ttt*n);/等待用户按回车后回到主菜单void to_menu()char c1,c2;printf(nnn按回车键返回主菜单.);scanf(%c%c,&c1,&c2);menu();/查看所有学生信息void view_data()int i;printf(姓名t学号tt籍贯);printf(nn);for(i=0;idd.count;i+)printf(%st%st%sn”,dd.stui.name,dd.stui.no,dd.stui.ad);/将数据从结构体数组保存到文件中void save_data()FILE *fp;int i,k;k=dd.count;fp=fopen(c:/dada.txt,w);fwrite(&k,sizeof(int),1,fp);for(i=0;ik;i+)fwrite(&dd.stui,sizeof(struct student),1,fp);fclose(fp);/输入学生记录void add_data()struct student st;int b;int k;int i,j;while(1)j=0;printf(n请输入学生信息:);printf(n 姓名t 学号tt 籍贯);printf(nn);scanf(%s%s%s”,st.name,st.no,st.ad);for(i=0;idd.count;i+)if(strcmp(dd.stui.no,st.no)=0)jT;printf(学号录入重复,请重新输入!);break;if(j=1)continue;if(j=0)k = dd.count;strcpy(dd.stuk.name,st.name);strcpy(dd.stuk.no,st.no);strcpy(dd.stuk.ad,st.ad);dd.count+;printf(nn 继续添加学生信息1-yes 0-no:);scanf(%d,&b);if(b=0) break;save_data();/将数据从文件读到结构体数组中void read_data()FILE *fp;int i,k;struct student st;k=0;if(access(c:/dada.txt”,0)=-1)/ 如果文件不存在fp=fopen(c:/dada.txt,w);fwrite(&k,sizeof(int),1,fp);fclose(fp);fp=fopen(c:/dada.txt,r);fread(&k,sizeof(int),1,fp);dd.count=k;for(i=0;ik;i+)fread(&st,sizeof(struct student),1,fp);strcpy(dd.stui.name,st.name);strcpy(dd.stui.no,st.no);strcpy(dd.stui.ad,st.ad);fclose(fp);/删除学生记录void delete_data()int i,k;char no50;printf(n请输入要删除学生的学号:, scanf(%s,no);k=-1;for(i=0;idd.count;i+)if(strcmp(dd.stui.no,no)=0) k=i;break;if(k=-1)printf(nn没有找到该学生(学号-%s)!,no);else for(i=k;idd.count;i+)strcpy(dd.stui.name,dd.stui+1.name);strcpy(dd.stui.no,dd.stui+1.no);strcpy(dd.stui.ad,dd.stui+1.ad);dd.count-;save_data();printf(nn删除(学号-%s)成功也no);/编辑学生记录void edit_data()int i,k;char no50,ad20;printf(-n请输入要编辑学生的学号:, scanf(%s,no);k=-1;for(i=0;idd.count;i+)if(strcmp(dd.stui.no,no)=0)k=i;break;if(k=-1)printf(nn没有找到该学生(学号-%s)!,no);elseprintf(n 姓名:s,学号:s”,dd.stuk.name,dd.stuk.no);printf(n请修改学生数据:);printf(n 籍贯:);scanf(%s,ad);strcpy(dd.stuk.ad,ad);/查询(学号)void query_data_no()int i,k;char no50;printf(-n请输入要查询学生的学号:,scanf(%s,no);k=-1;for(i=0;idd.count;i+)if(strcmp(dd.stui.no,no)=0)printf(nn 姓名t 学号tt 籍贯);printf(nn); k=i;printf(%st%st%sn”,dd.stui.name,dd.stui.no,dd.stui.ad);if(k=-1)printf(nn没有找到该学生(学号-%s)!,no);/查询(姓名)void query_data_name()int i,k;char name10;printf(-n请输入要查询学生的姓名:,scanf(%s”,name);k=-1;for(i=0;idd.count;i+)if(strcmp(dd.stui.name,name)=0)printf(nn 姓名t 学号tt 籍贯);printf(nn);k=i;printf(%st%st%sn”,dd.stui.name,dd.stui.no,dd.stui.ad);if(k=-1)printf(nn没有找到该学生(姓名-%s)!,name);查询(籍贯)void query_data_address()int i,sum=0;char ad20;printf(请输入籍贯信息:);scanf(%s,ad);printf(该籍贯的学生有:,for(i=0;idd.count;i+)if(strcmp(dd.stui.ad,ad)=0)printf(%st”,dd.stui.name);sum+;if(sum=0)printf( 0 人 n);判断显示天津籍void Dis()int i;printf(天津学生:n);printf(学号tt姓名籍贯n);for(i=0;idd.count;i+)if(strcmp(dd.stui.ad,天津)=0)printf(%st%7s %5sn”,dd.stui.no,dd.stui.name,dd.stui.ad);printf(n);printf(n);printf(非天津学生:n);printf(学号tt姓名籍贯n);for(i=0;idd.count;i+)if(strcmp(dd.stui.ad,天津)!=0)printf(%st%7s %5sn”,dd.stui.no,dd.stui.name,dd.stui.ad);/主函数void main()int fun;read_data();menu();while(1)printf(请输入功能号0-7:,&fun);scanf(%d,&fun);switch(fun)case 0:/ 退出break;case 1:/查看所有学生信息view_data();break;case 2:/输入学生记录add_data();break;case 3:/删除学生记录delete_data();break;case 4:/编辑学生记录edit_data();break;case 5:/查询(学号)query_data_no();break;case 6:/查询(姓名)query_data_name();break;case 7:/查询(籍贯)query_data_address();break;case 8:/显示天津籍与非天津籍Dis();break;if(fun=0) break;to_menu();
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!