籍贯信息记录簿Word文件下载.docx
- 文档编号:3424285
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:22
- 大小:189.83KB
籍贯信息记录簿Word文件下载.docx
《籍贯信息记录簿Word文件下载.docx》由会员分享,可在线阅读,更多相关《籍贯信息记录簿Word文件下载.docx(22页珍藏版)》请在冰点文库上搜索。
6课程设计总结6
参考文献7
1课题分析
1.1问题描述
以本班同学的具体数据为背景,编制一个学生籍贯信息记录簿,每个学生信息包括:
学号、姓名、籍贯。
具体功能为:
1)系统以菜单方式工作;
2)添加学生信息,至少10条。
3)显示所有学生的信息;
4)按学号或姓名查询其籍贯;
5)按籍贯查询并输出该籍贯的所有学生(至少3个城市);
6)删除和修改学生的籍贯信息;
7)显示输出上海市籍和非上海市籍学生的信息并可分别存盘。
1.2功能需求分析
按系统所需实现的功能要求,功能模块如图1所示。
图1系统功能模块图
1.3数据属性分析
学生籍贯信息记录簿中的数据信息主要有一类,即学生信息,其记录属性如下。
1.3.1学生信息属性
●姓名:
学生姓名,由汉字组成,长度小于10个字符。
●学号:
由两到三位数字组成,且学号不可重复,长度小于50个字符。
●籍贯:
学生籍贯,由汉字组成,长度小于20个字符。
1.3.2学生数组信息属性
●数组中学生的个数。
●学生数组。
1.3.3附加属性
系统除了描述学生的基本信息外,还需达到信息记录的删除、添加、修改及查询的功能,在以上学生信息的基础上附加如下属性。
●信息查询状态属性:
因不确定查询的学号,姓名以及籍贯是否存在,当查询不存在学生信息时,需要添加一个“学生信息不存在”的是属性。
2.1数据存储设计
学生籍贯信息记录簿所涉及的信息以文件形式存储在计算机磁盘上,为有利于一条学生信息的整体读写,文件类型为二进制。
二进制文件中数据项存储示意图如图2所示,图中每个带底纹的矩形块为一条记录,矩形块长度相等,即表示每条记录占用的存储空间(字节)相等。
图2二进制文件中数据项存储示意图
2.2数据结构设计
学生信息数据结构
2.3函数设计与说明
表1函数列表
序号
函数原型
功能说明
1
voidmenu()
显示主菜单
2
voidto_menu()
等待用户按回车后回到主菜单
3
voidview_data()
查看所有学生信息
4
voidsave_data()
将数据从结构体数组保存到文件中
5
voidadd_data()
输入学生记录
6
voidread_data()
将数据从文件读到结构体数组中
7
voiddelete_data()
删除学生记录
8
voidedit_data()
编辑学生记录
9
voidquery_data_no()
查询(学号)
10
voidquery_data_name()
查询(姓名)
11
voidquery_data_address()
查询(籍贯)
12
voidshow_data_shanghai()
显示上海市籍学生
13
voidshow_data_noshanghai()
显示非上海市籍学生
14
voidmain()
主函数
2.4菜单设计
//显示主菜单
voidmenu()
{
system("
cls"
);
printf("
\n"
\t\t\t******************\n"
\t\t\t**\n"
\t\t\t*学生籍贯信息记录簿*\n"
\t\t\t*[0]退出*\n"
\t\t\t*[1]查看所有学生信息*\n"
\t\t\t*[2]输入学生记录*\n"
\t\t\t*[3]删除学生记录*\n"
\t\t\t*[4]编辑学生记录*\n"
\t\t\t*[5]查询(学号)*\n"
\t\t\t*[6]查询(姓名)*\n"
\t\t\t*[7]查询(籍贯)*\n"
\t\t\t*[8]显示所有上海市籍学生*\n"
\t\t\t*[9]显示所有非上海市籍学生*\n"
\t\t\t**\n"
\t\t\t*****************\n"
\t\t\t**制作人:
栾海平胡瑞君徐恒**\n"
}
//等待用户按回车后回到主菜单
voidto_menu()
charc1,c2;
\n\n\n按回车键返回主菜单..."
scanf("
%c%c"
&
c1,&
c2);
menu();
2.5文件清单与说明
表2程序文件清单
序号
程序文件名
文件说明
myhead.h
函数声明、学生数据结构定义
menu.h
学籍菜单显示
studentxj.c
主程序文件
writetoText.dat
写入学籍信息的二进制文件
read.dat
读入学籍信息的二进制文件
2.5.1函数声明、学生数据结构定义文件myhead.h
该文件包含了宏定义、函数声明以及学生数据结构定义,源程序如下。
#include<
stdio.h>
io.h>
stdlib.h>
string.h>
windows.h>
#defineMAX300
structstudent
charname[10];
//姓名
charno[50];
//学号
charad[20];
//籍贯
};
structdata
intcount;
//当前学生数组中学生的个数
structstudentstu[MAX];
//学生数组
}dd;
voidmenu()//显示主菜单
voidto_menu()//等待用户按回车后回到主菜单
voidview_data()//查看所有学生信息
voidsave_data()//将数据从结构体数组保存到文件中
voidadd_data()//输入学生记录
voidread_data()//将数据从文件读到结构体数组中
voiddelete_data()//删除学生记录
voidedit_data()//编辑学生记录
voidquery_data_no()//查询(学号)
voidquery_data_name()//查询(姓名)
voidquery_data_address()//查询(籍贯)
voidshow_data_shanghai()//显示上海市籍学生
voidshow_data_noshanghai()//显示非上海市籍学生
voidmain()//主函数
2.5.2菜单显示文件menu.h
menu.h文件包含了系统显示一级菜单界面的函数,源程序如下。
voidmenu()//主菜单
\t\t\t**制作人:
3系统实现
3.1添加学生籍贯信息
主菜单中选择“[2]添加学生记录”,按提示输入学生基本信息。
图3显示了新增学生籍贯信息界面。
图3新增学生籍贯信息界面
3.2修改学生籍贯信息
主菜单中选择“[4]编辑学生记录”,输入想修改籍贯的学生的学号。
图4显示了修改学生籍贯信息界面。
图4修改学生籍贯信息界面
3.3删除学生籍贯信息
主菜单中选择“[3]删除学生记录”,输入想删除信息的学生的学号。
图5显示了删除学生信息界面。
图5删除学生籍贯信息界面
3.4显示所有学生信息与查询
3.4.1显示所有学生信息
主菜单中选择“[1]查看所有学生信息”,系统自动将所有学生的信息按姓名,学号,籍贯依次排列。
图6显示了记录簿里按项排列学生的信息。
图6显示所有学生信息界面
3.4.2按学号查询
主菜单中选择“[5]查询(学号)”,按提示输入想查找人学号。
图7显示了按学号查找学生信息界面。
图7按学号查找学生信息界面
3.4.3按姓名查询
主菜单中选择“[6]查询(姓名)”,按提示输入想查找人姓名。
图8显示了按姓名查找学生信息界面。
图8按姓名查找学生信息界面
3.4.4按籍贯查询
主菜单中选择“[7]查询(籍贯)”,按提示输入想查找人籍贯。
图9显示了按籍贯查找学生信息界面。
图9按籍贯查找学生信息界面
3.5显示上海与非上海市籍学生信息
3.5.1显示上海市籍学生信息
主菜单中选择“[8]显示所有上海市籍学生”,系统将自动将所有上海市籍学生姓名排出,图10显示了上海市籍学生信息。
图10显示上海市籍学生信息界面
3.5.2显示非上海市籍学生信息
主菜单中选择“[9]显示所有非上海市籍学生”,系统将自动将所有非上海市籍学生姓名排出,图11显示了非上海市籍学生信息。
图11显示非上海市籍学生信息界面
4测试数据与测试过程记录
4.1菜单测试
程序运行显示“学生籍贯信息记录簿”封面,同时显示主菜单,等待用户选择执行的菜单项,其界面如图12所示。
图12系统运行主界面
4.2系统功能测试
测试是程序设计中至关重要的步骤,是保证软件功能的正确实现及满足用户需求的重要环节。
学生籍贯信息记录簿系统功能测试如表3所示。
表3系统功能测试表
测试
编号
功能名称
测试数据
预期结果
测试结果
结论
菜单项
(1)菜单选项值:
(2)菜单选项值:
(3)菜单选项值:
1a
若输入的选项值与菜单选项一致则执行菜单功能,否则删去输入值重新输入
(1)正确进入
(2)重新输入
(3)重新输入
通过
统计查询
分别输入籍贯不同学生信息10条,其中上海3条,非上海7条
总的人数:
10人
上海人数:
3人
非上海人数:
7人
按姓名查询
(1)输入姓名:
徐恒
(2)输入姓名:
孙敏智
若输入的姓名存在于学生信息中则找到相应信息,否则显示学生信息中没有此人
(1)找到相应信息
(2)学生信息中无此人。
按籍贯查询
(1)输入籍贯:
安徽
(2)输入籍贯:
新疆
若输入的籍贯存在于学生信息中则找到相应信息,否则显示学生信息中没有此人
(2)学生信息中无此人
按学号查询
(1)输入学号:
20
(2)输入学号:
00
若输入的学号存在于学生信息中则找到相应信息,否则显示学生信息中没有此人
添加学生信息
姓名:
胡瑞君
学号:
05
籍贯:
若添加信息成功则在显示记录里可以看见相应信息,若添加失败则无法看见
在显示记录里看见新添加的信息
修改学生信息
输入学号:
01
修改籍贯:
海南
若修改信息成功在显示记录里可以看见修改后同学相应的信息,若修改失败则看见错误信息
在显示记录里看见修改后学生信息
删除学生信息
若删除信息成功在显示记录里将无法看见删去同学相应的信息,若仍能看见删除失败
在显示记录里没有徐恒的任何信息
所有信息按项排列显示
所输入的所有学生信息
显示记录里按项显示着所有学生的信息
显示上海市籍学生信息
输入菜单选项8
显示出所有上海市籍学生的信息
显示出所有上海市籍学生信息
显示非上海市籍学生信息
输入菜单选项9
显示出所有非上海市籍学生
显示出所有非上海市籍学生信息
5课程设计遇到的问题及解决方法
(1)存储内容
问题内容发现定义的学号内存过大,想要改小一点,但是改小之后,文件内储存的信息全部乱了。
问题分析内容存在文件中有一定的空间以及格式,修改了内存之后,信息就乱了。
解决办法本来删除学生信息是通过学号来删除的,但是信息乱掉之后有很多学生信息不存在学号,就只有姓名以及籍贯,于是将删除学生信息代码中的代表学号的代码全部换成了代表姓名的代码,成功的将乱掉的信息删除,并重新输入新的信息。
(2)显示输出上海市籍和非上海市籍学生的信息并可分别存盘
问题内容:
文件中存入的籍贯是上海与及全国各个省份的信息,实现上海与非上海学生的信息,如果从键盘上输入可实现,可是不知如何直接从屏幕上来打印出来。
问题分析:
可通过字符串及其常用的字符串处理函数来实现显示输出上海市籍与非上海市籍学生信息的统计。
解决方法:
在显示上海学生的信息时,先把上海存入到自定义的字符串中去,用字符串比较函数strcmp()判断是否为零,若是上海的,就满足,输出上海学生,否则不输出,对于统计非上海的,步骤与上述相同,只是用strcmp判断是否不等于零,若满足就输出非上海市的学生。
(3)将数据从文件读到结构体数组中
在平时的输入中,我们都是直接从键盘上输入信息在存入到结构体数组中去,但是现在要从文件把信息读入到结构体数组中去,增加了难度,让我们有点感到手足无措,不知如何解决。
要明白文件的一些基本操作,对它们的功能具体有个了解。
首先要先自定义一个函数指针,来对文件中的内容进行操作,然后通过书籍及其查阅资料来了解文件的一些操作。
通过fopen来打开文件,然后在通过fread来读取文件里的信息,这样就可以通过常用的函数操作把信息复制到结构体数组中,最后要用fclose来关闭文件。
6课程设计总结
经过一个学期的学习,我对C语言有了一定的了解。
C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。
课程设计是一个把需求分析、程序编写、程序调试、撰写报告结合为一体的过程。
在这个过程中,不仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神。
只有通过大家一起努力才能将课程设计的所有环节都顺利的完成。
另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的能力了有了一个提高,这有利于我们以后的学习。
同时也使我们对程序编写的整个过程有了一个统筹全局的思想,因为需求分析、程序编写、程序调试、撰写报告这些过程是环环相扣的,绝对不可能独立进行。
课程设计是学习C语言后对知识的全面测试,刚拿到题目时不知道怎么去处理,觉得很复杂,在调试程序阶段,程序出现错误,并且怎么改都不行,一度想要放弃,想说只拿个及格就算了,但是经过和小组成员的讨论,上网查资料,问题不再那么复杂,并且逐个逐个的解决了。
通过课程设计,我发现自己还存在很多知识漏洞,编写程序时,经常会出现低级错误,很多知识点都不熟悉。
程序的编写以及修改就花了我两个整天的时间,并且还求助了亲戚,但我知道,我在一步一步的学习中,今后会更好的。
希望,以后还有更多的机会能够做类似的实习等活动,一来是自己开始喜欢这种方式的学习,二来是希望自己还能够有更大的进步和提高。
在今后的时间里,我一定要投入更多精力学习C语言,以课本为基础,请教老师,与同学讨论,参考资料,上机操作,我相信我一定能把C语言学好。
参考文献
1.CSDN---全球最大中文IT社区
2.XX文库.c语言程序籍贯信息记录簿设计
3.AndrewKoenig.C语言调试指南.北京:
人民邮电出版社,2008年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 籍贯 信息 记录簿