ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:189.34KB ,
资源ID:6793253      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6793253.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计学生籍贯管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、数据结构课程设计学生籍贯管理系统 1 设计内容及要求1.1 课程设计要求1. 要求利用C语言面向过程的编程思想来完成系统的设计; 2. 突出C语言的函数特征,以多个函数实现每一个子功能; 3. 画出功能模块图; 4. 进行简单界面设计,能够实现友好的交互; 5. 具有清晰的程序流程图和数据结构的详细定义; 6. 熟练掌握C语言对文件的各种操作。1.2 学生籍贯管理系统的要求该程序应该具有下列功能:(1)输入学生信息并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6)

2、显示输出天津籍和非天津籍学生的信息并可分别存盘;2 程序设计环境及设计思想2.1 软件设计环境Microsoft Visual C+ 6.02.2 设计思想该程序运用了结构体数组的输入,输出,修改及存储,采用循环的方式对程序进行编写,同时也采用循环的方式对程序进行输入、显示、查询、检索、删除、编辑等操作。实现编程的意义。3 数据保存方式以及格式本学生信息系统将能自动把输入的学生信息保存为C:/data .txt文件中,在文件的读取时,系统将能自动把该二进制文件读出,并在屏幕上显示出学生信息。前提是必须在C盘中创建data.txt文件。4 模块的调用、划分与功能图4.1 各软件模块之间的调用方式

3、程序中各个模块之间的调用方式主要是通过函数的调用实现的。先使用主函数调用框架函数,然后在框架函数中调用不同功能的函数,达到对学生信息管理的目的。 4.2 系统完成功能 每条记录包括一个学生学号、姓名、籍贯。1、输入功能:可以一次完成无数条记录的输入。2、显示功能:完成全部学生记录的显示。3、查找功能:完成按姓名、学号查找学生记录,并显示。4、修改功能:通过查找学生姓名、学号,修改学生记录。5、保存功能:将学生记录保存到任何自定义的文件中。6、读取功能:将保存到文件中的学生记录读取出来。7、分类功能:分别显示天津籍跟非天津籍的学生并分别存盘,且根据需要显示出来。8、应提供一个界面来调用各个功能,

4、调用界面和功能的操作界面应尽可能清晰美观。4.3 功能框图显示图表 15 界面设计功能主界面提供了良好的控制台界面,能够方便的根据功能采取相应的操作,简单明了,去除了复杂、多余的步骤。当输入不符合要求时,则会显示相应的提示。运行程序时,该程序显示的主界面显示如下:图 1输入功能号:1,则显示已经存入的学生籍贯信息记录图 2输入功能号:2,则显示删除学生记录界面 图 3输入功能号:3,显示修改学生籍贯界面图 4输入功能号:7,显示查询所有上海籍的学生图 5输入功能号:8,显示天津籍跟非天津籍的学生图 65.1 学生籍贯管理系统公共数据结构在学生籍贯管理系统中使用 的公共数据结构例举如下:#def

5、ine MAX300 定义常量N表示可录入最大学生数int i,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 小结通过这次课设,我学会了

6、如何把数据结构的知识应用到实践当中,同时也进一步加深了对c/c+语言语法的应用,以及深刻的掌握了数据结构和c/c+语言的结合运用。 在编程过程中,遇到了许多问题,在一次次的运行错误后,总是发现问题的所在,并且一步步加以改正,也从中学到了许多知识,感觉又重新学习了一次数据结构课程。虽然我的程序还不够完善,还需加以改进以实现更多的功能,但是我会尽我最大的努力去完成它,我相信我会努力去把程序做的更加完美。参考文献1严蔚敏、吴伟民编著. 数据结构(C语言版).清华大学出版社。2藤国文等编著. 数据结构课程设计. 北京:清华大学出版社 。3齐景嘉编著. 数据结构(含实训). 东南大学出版社。4朱儒荣、朱

7、辉等编著. 数据结构常见题型解析与模拟题 西北工业大学出版社。5徐孝凯,贺桂英等编著. 数据结构(C语言描述). 清华大学出版社。6徐孝凯编著.数据结构实用教程. 北京: 清华大学出版社。7严蔚敏,陈文博编著. 数据结构及算法教程. 北京: 清华大学出版社。8刘振安,刘燕君等编著. C 程序设计课程设计. 北京: 机械出版社。9李建学、李光元、吴春芳等编著. 数据结构课程设计案例精编. 清华大学出版社。附录:程序源代码#include #include #include #include #define MAX 300struct student char name10; / 姓名 char

8、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(t

9、tt* 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(

10、) int i; printf(姓名t学号tt籍贯);printf(n-n); 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

11、(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(n-n); scanf(%s%s%s,st.name,st.no,st.ad); for(i=0;idd.count;i+) if(strcmp(dd.stui.no,st.no)=0) j=1; printf(学号录入重复,请重新输入!); break; if(j=1) continue; if(j=0) k = dd.count; s

12、trcpy(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,

13、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 n

14、o50; 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(

15、); 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); else printf(n姓名:%s,学号:%s,dd.stuk.name,dd.stuk.no); printf(n请修改学生数据:); printf

16、(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(n-n); k=i; printf(%st%st%sn,dd.stui.name,dd.stui.no,dd.stui.ad); if(k=-1) printf(nn没有

17、找到该学生(学号-%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(n-n); k=i; printf(%st%st%sn,dd.stui.name,dd.stui.no,dd.stui.ad); if(k=-1) printf(nn没有找到该学生(姓名-%s)!,na

18、me); /查询(籍贯)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+

19、) 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();

20、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@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1