ImageVerifierCode 换一换
格式:DOC , 页数:44 ,大小:2.65MB ,
资源ID:2700670      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(学生信息管理系统开发课程设计论文.doc)为本站上传会员【胜****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

学生信息管理系统开发课程设计论文.doc

1、 JISHOUUNIVERSITY本科生课程设计计算机语言程序设计基础I题 目:学生信息管理系统开发作 者:学 号:所属学院: 班 级: 44 / 44完成时间:评分表序号评分项分数1出勤及表现2功能完善3文档格式与文字表达4代码风格5测试调试6图表7功能设计8目录结构设计9界面与流程10加分合计课程设计工作组长签字: 年 月 日目 录一、问题分析5二、总体设计71.界面设计72.数据结构设计83.文件结构设计94.系统功能结构设计95.工程目录结构设计10三、模块实现、测试与调试101.主控模块10函数原型10函数定义10函数测试122.界面模块131)打印菜单功能132)打印学生卡片163

2、)打印添加学生提示184)打印删除学生提示195)打印修改学生提示203.数据处理模块211)添加学生功能212)删除学生功能243)修改学生功能264)查询功能275)浏览功能276)列表判空功能287)列表判满功能294.存储模块291)读入数据302)保存数据31四、系统集成测试321.主控模块+添加学生322. 主控模块+添加学生+存储模块36五、总结40一、 问题分析课程设计的题目为学生信息管理系统开发,要求实现添加学生、删除学生、修改学生信息、浏览所有学生和查询学生等操作。为了能够把学生信息永久保存下来需要使用文件。需要保存的数据结构简单,数据文件采用纯文本文件,扩展名为txt。学

3、生信息包括以下几个数据:学号、姓名、性别、班级、宿舍。这些数据都是字符串类型,学号的长度为12,姓名的最大长度为50,性别的最大长度为2,班级的最大长度为30,宿舍的最大长度为10。性别必须是男或者女。所有数据均不能为空。添加学生操作要求用户输入学生的所有信息。删除学生操作要求用户首先输入要删除的学生的学号,然后系统根据学号删除相应数据。修改学生信息要求用户输入学生的所有信息,然后系统用输入的数据替代现有的数据。浏览所有学生信息操作把所有学生的信息按照添加的先后顺序显示出来。查询学生操作要求用户首先输入要删除的学生的学号,然后系统根据学号找到相应数据,并且显示出来。上述所有操作正常完成后,不给

4、出任何报告,如果不能正常完成,则给出错误报告。在系统启动时,从数据文件中读入数据,操作过程中数据更新保存在内存,在系统退出或者用户要求保存时才把内存中的数据保存到文件中。系统为控制台应用程序,采用控制台菜单作为用户界面。系统总体业务流程见下图。启动从文件读入数据输入菜单命令cmd打印菜单cmd其他操作保存退出完成相应功能把数据保存到文件把数据保存到文件结束二、 总体设计1. 界面设计系统菜单提供与系统需要完成的添加学生、删除学生、修改学生信息、浏览所有学生和查询学生功能相对应的菜单命令,以及保存文件和退出系统的菜单命令。从数据文件中读入数据是在系统启动时自动完成的,不需要提供相应的菜单命令。下

5、图为命令菜单。*学生信息管理系统1。添加学生2。删除学生3。修改学生4。查询学生5。学生列表6。保存文件0。退出系统* 浏览所有学生操作的打印结果采用列表方式显示,列表包括三个部分:表格标题、表头和表格数据。下图为学生列表的一个例子。=学生名册=学号姓名性别班级宿舍20144055001冯午阳男14通信17#101= 添加学生给出的提示信息如下图所示,包括操作提示和信息提示两个部分。-添加学生-学号 姓名 性别 班级 宿舍修改学生给出的提示信息如下图所示,包括操作提示和信息提示两个部分。-修改学生-学号 姓名 性别 班级 宿舍查询学生的结果是学生信息卡,如下图所示,在开始标识和结束标识之间,以

6、每行一条数据的方式显示各项信息。=学生卡片=学号:20144055003姓名:冯午阳性别:男班级:14通信1宿舍:7#101=2. 数据结构设计用结构体存放学生信息,结构体类型Student定义如下图所示。其中使用常量存放各项数据的最大长度。struct Student char sidSID_SIZE+1;/学号 char nameNAME_SIZE+1;/姓名 char sexSEX_SIZE+1; /性别 char sClassSCLASS_SIZE+1;/班级 char dormDORM_SIZE+1;/宿舍;用数组sList存放学生信息表,用SIZE存放数组的最大长度,用整型变量le

7、n保存数组中存放的学生个数,并初始化为0。相关的定义代码如下图所示。Student sListLIST_SIZE;int len=0;3. 文件结构设计存放学生信息的文件名为studentData.txt,文件中每行保存一个学生的数据。每行为5个字符串,中间用一个空格隔开。每个字符串为一项数据,依次为学号、姓名、性别、班级、宿舍。每项数据为一个没有空格的字符串。4. 系统功能结构设计除主控模块外,整个系统的主要功能分为三大模块:界面、存储、数据处理。界面模块包括打印菜单、打印学生卡片、打印添加学生提示、打印删除学生提示、打印修改学生提示、打印查询学生提示、打印学生列表、报告表空、报告学生不存在

8、、报告文件错误。存储模块包括读入数据和保存数据。数据处理模块包括添加学生、删除学生、修改学生、查询、浏览和列表判空。系统功能结构如下图所示。总控模块保存数据读入数据存储模块数据处理模块界面模块判满打印菜单报告文件错误报告学生不存在打印添加提示卡片打印学生卡片判空浏览查询修改学生删除学生添加学生报告表空打印学生列表卡片打印修改提示卡片打印查询提示卡片打印删除提示卡片5. 工程目录结构设计系统工程名称StudentMan,main.cpp中定义main函数,实现总体业务流程的控制,ui.h、ui.cpp中声明、定义界面模块中的各个功能函数,store.h、store.cpp中声明、定义存储模块中的

9、各个功能函数,data.h、data.cpp中声明、定义数据处理模块中的各个功能函数。三、 模块实现、测试与调试1. 主控模块函数原型int main();函数定义#include #include #include using namespace std;int main()char cmd;/1. 读入数据/cout读入数据.endl;printf(读入数据.n);/循环执行步骤2、3、4while(true)/2. 打印菜单/cout菜单endl;printf(菜单n);/3. 输入命令cmd/cout请输入命令(1,2,3,4,5,6,0):cmd;/scanf(%c,&cmd);cm

10、d=getch();switch(cmd)/4. 根据cmd,分支case 0:/4.1 如果cmd是退出,/4.1.1 保存数据/cout保存数据endl;printf(保存数据n);/4.1.2 退出系统exit(-1);break;case 6:/4.2 如果cmd是保存/4.2.1 保存数据/cout保存数据endl;printf(保存数据n);break;case 1:/4.3 如果cmd是添加/4.3.1 添加学生/cout添加学生endl;printf(添加学生n);break;case 2:/4.4 如果cmd是删除/4.4.1 删除学生/cout删除学生endl;printf

11、(删除学生n);break;case 3:/4.5 如果cmd是修改/4.5.1 修改学生/cout修改学生endl;printf(修改学生n);break;case 4:/4.6 如果cmd是查询/4.6.1 查询学生/cout查询学生endl;printf(查询学生n);break;case 5:/4.7 如果cmd是浏览/4.7.1 打印学生列表/cout学生列表endl;printf(学生列表n);break;default:printf(错误命令!n);break;return 0;函数测试测试记录 1. 当使用scanf(%c,&cmd);输入命令时出现问题。更正办法是:使用cmd

12、=getch();输入命令。需要包含conio.h头文件。2. 界面模块界面模块包括打印菜单、打印学生卡片、打印添加学生提示、打印删除学生提示、打印修改学生提示、打印查询学生提示、打印学生列表、报告表空、报告学生不存在、报告文件错误。1)打印菜单功能函数原型void printMenu();函数定义void printMenu()printf(*n);printf( 学生信息管理系统 n);printf( 1。添加学生 n);printf( 2。删除学生 n);printf( 3。修改学生 n);printf( 4。查询学生 n);printf( 5。学生列表 n);printf( 6。保存文

13、件 n);printf( 0。退出系统 n);printf(*n);函数测试#include #include #include #include ui.husing namespace std;int main()char cmd;/1. 读入数据/cout读入数据.endl;printf(读入数据.n);/循环执行步骤2、3、4while(true)/2. 打印菜单/cout菜单endl;/printf(菜单n);printMenu();/3. 输入命令cmd/cout请输入命令(1,2,3,4,5,6,0):cmd;/scanf(%c,&cmd);cmd=getch();switch(c

14、md)/4. 根据cmd,分支case 0:/4.1 如果cmd是退出,/4.1.1 保存数据/cout保存数据endl;printf(保存数据n);/4.1.2 退出系统exit(-1);break;case 6:/4.2 如果cmd是保存/4.2.1 保存数据/cout保存数据endl;printf(保存数据n);break;case 1:/4.3 如果cmd是添加/4.3.1 添加学生/cout添加学生endl;printf(添加学生n);break;case 2:/4.4 如果cmd是删除/4.4.1 删除学生/cout删除学生endl;printf(删除学生n);break;case

15、 3:/4.5 如果cmd是修改/4.5.1 修改学生/cout修改学生endl;printf(修改学生n);break;case 4:/4.6 如果cmd是查询/4.6.1 查询学生/cout查询学生endl;printf(查询学生n);break;case 5:/4.7 如果cmd是浏览/4.7.1 打印学生列表/cout学生列表endl;printf(学生列表n);break;default:printf(错误命令!n);break;return 0;2)浏览功能函数原型 void printStudentList(Student sList, int len);函数定义单元测试3)打印

16、学生卡片函数原型 void printStudent(Student s);函数定义void printStudent(Student s)printf(=学生卡片=n);printf(学号:%sn,s.sid);printf(姓名:%sn,s.name);printf(性别:%sn,s.sex);printf(班级:%sn,s.sClass);printf(宿舍:%sn,s.dorm);printf(=n);单元测试测试代码void test_printStudent()Student s =20144055003,冯午阳,男,14通信1,7#101;printStudent(s);测试代码

17、void test_printStudent()Student s =20144055003,韩宇枫,男,14通信1,7#101;printStudent(s);3)打印添加学生提示函数原型 void printAddStudentTips();函数定义void printAddStudentTips()printf(-添加学生-n);printf(学号 姓名 性别 班级 宿舍 n);单元测试int main()printAddStudentTips();return 0;4)打印删除学生提示函数原型 void printDeleteTips();函数定义void printDeleteTip

18、s()printf(-修改学生-n);printf(学号 姓名 性别 班级 宿舍 n);单元测试#include #include ui.hint main()printDeleteTips();return 0;5)打印修改学生提示函数原型 函数定义单元测试打印查询学生提示函数原型 函数定义单元测试打印学生列表函数原型 函数定义单元测试报告表空函数原型 函数定义单元测试报告学生不存在函数原型 函数定义单元测试报告文件错误函数原型 函数定义单元测试3. 数据处理模块数据处理模块包括添加学生、删除学生、修改学生、查询、浏览和列表判空。1)添加学生功能函数原型 void addStudent(St

19、udent sList,int len,Student s);函数定义void addStudent(Student sList,int *len,Student s)strcpy(sList*len.sid ,s.sid);strcpy(sList*len.name , s.name);strcpy(sList*len.sex , s.sex);strcpy(sList*len.sClass , s.sClass);strcpy(sList*len.dorm , s.dorm);(*len)+;单元测试void addStudent(Student sList,int *len,Studen

20、t s)strcpy(sList*len.sid ,s.sid);strcpy(sList*len.name , s.name);strcpy(sList*len.sex , s.sex);strcpy(sList*len.sClass , s.sClass);strcpy(sList*len.dorm , s.dorm);(*len)+;void test_addStudent()Student sList10;int len=0;Student s =20144055003,冯午阳,男,14通信1,7#101;addStudent(sList,&len,s);printStudent(sL

21、ist0);printf(学生数目:%dn,len);测试记录1. 第一次的代码void addStudent(Student sList,int len,Student s)strcpy(sListlen.sid ,s.sid);strcpy(sListlen.name , s.name);strcpy(sListlen.sex , s.sex);strcpy(sListlen.sClass , s.sClass);strcpy(sListlen.dorm , s.dorm);len+;void test_addStudent()Student sList10;int len=0;Stude

22、nt s =20144055003,冯午阳,男,14通信1,7#101;addStudent(sList,len,s);printStudent(sList0);printf(学生数目:%dn,len);问题:学生数目应该为1,输出结果是0.分析:说明记录学生数目的变量len的值没有变化。原因是单向值传递。修改:传递len的地址修改后的代码:void addStudent(Student sList,int *len,Student s)strcpy(sList*len.sid ,s.sid);strcpy(sList*len.name , s.name);strcpy(sList*len.s

23、ex , s.sex);strcpy(sList*len.sClass , s.sClass);strcpy(sList*len.dorm , s.dorm);(*len)+;void test_addStudent()Student sList10;int len=0;Student s =20144055003,冯午阳,男,14通信1,7#101;addStudent(sList,&len,s);printStudent(sList0);printf(学生数目:%dn,len);测试结果2)删除学生功能从学生列表sList中删除编号为i的学生,要求i大于等于0小于学生数目len。函数原型

24、void deleteStudent(Student sList,int *len,int i);函数定义void deleteStudent(Student sList,int *len,int i)/把编号i+1到len-1的学生的数据 前移一位for(;i = *len-2; i+)sListi = sListi+1;/学生数目减1(*len)-;单元测试void test_deleteStudent()Student sList10;int len=0;char fileName=studentData.txt;char fileName2=studentData2.txt;int f

25、lag = readData(fileName, sList, &len);deleteStudent(sList,&len,len/2);saveData(fileName2, sList, len);studentData.txt文件的内容20144055001 冯午阳 男 14通信1 7#10120144055001 冯午阳 男 14通信1 7#10220144055001 冯午阳 男 14通信1 7#10320144055001 冯午阳 男 14通信1 7#104111 www 男 14tong1 1702运行test_deleteStudent()后studentData2.txt文

26、件的内容20144055001 冯午阳 男 14通信1 7#10120144055001 冯午阳 男 14通信1 7#10220144055001 冯午阳 男 14通信1 7#103111 www 男 14tong1 1702111 www 男 14tong1 1702调试代码void test_deleteStudent()Student sList10;int len=0;char fileName=studentData.txt;char fileName2=studentData2.txt;int flag = readData(fileName, sList, &len);print

27、f(%dn,len);deleteStudent(sList,&len,len/2);printf(%dn,len);saveData(fileName2, sList, len);根据调试结果,我们发现在数据文件studentData.txt中如果最后一行有换行符,则readData函数会多读入一条数据。修改readData函数,用fgetc(fp);fgetc(fp);吸收掉每行末尾的rn。int readData(char fileName, Student sList, int *len)FILE* fp = fopen(fileName,r);Student s; if(fp = N

28、ULL)return 0;while(!feof(fp)fscanf(fp,%s %s %s %s %s,s.sid,s.name,s.sex,s.sClass,s.dorm);fgetc(fp);fgetc(fp);addStudent(sList,len,s);fclose(fp);return 1;3)修改学生功能函数原型 int updateStudent(Student sList, int len, Student s);函数定义int updateStudent(Student sList, int len, Student s)int p = find(sList,len,s.

29、sid);if(p = -1)return 0;else/strcpy(sListp.sid ,s.sid);strcpy(sListp.name , s.name);strcpy(sListp.sex , s.sex);strcpy(sListp.sClass , s.sClass);strcpy(sListp.dorm , s.dorm);return 1;单元测试void test_updateStudent()Student sList10;int len=0;int status;Student s=20144055003,pppp,0,1414,7501;char fileName

30、=studentData.txt;int flag = readData(fileName, sList, &len);status = updateStudent(sList, len, s);printf(%dn,status);saveData(fileName, sList, len);数据文件studentData.txt原来的内容:20144055001 fwy 男 14通信1 7#10320144055002 fwy 男 14通信1 7#10420144055003 tttt男14通信1 7#104执行函数test_updateStudent()后,数据文件studentData

31、.txt的内容:20144055001 fwy 男 14通信1 7#10320144055002 fwy 男 14通信1 7#10420144055003 pppp 0 1414 75014)查询功能函数原型 函数定义单元测试6)列表判空功能函数原型 int emptySList(int len);函数定义int emptySList(int len)if(len = 0)return 1;elsereturn 0;单元测试void test_emptySList()int len = LIST_SIZE-1;int flag = emptySList(len);printf(%dn,flag

32、);len = LIST_SIZE;flag = emptySList(len);printf(%dn,flag);len = 0;flag = emptySList(len);printf(%dn,flag);7)列表判满功能函数原型 int fullSList(int len);函数定义int fullSList(int len)if(len = LIST_SIZE)return 1;elsereturn 0;单元测试void test_fullSList()int len = LIST_SIZE-1;int flag = fullSList(len);printf(%dn,flag);l

33、en = LIST_SIZE;flag = fullSList(len);printf(%dn,flag);4. 存储模块存储模块包括读入数据和保存数据。存放学生信息的文件名为studentData.txt,文件中每行保存一个学生的数据。每行为5个字符串,中间用一个空格隔开。每个字符串为一项数据,依次为学号、姓名、性别、班级、宿舍。每项数据为一个没有空格的字符串。1)读入数据函数原型 int readData(char filename, Student sList, int *len);函数定义int readData(char fileName, Student sList, int *l

34、en)FILE* fp = fopen(fileName,r);Student s; if(fp = NULL)return 0;while(!feof(fp)fscanf(fp,%s %s %s %s %s,s.sid,s.name,s.sex,s.sClass, s.dorm);addStudent(sList,len,s);fclose(fp);return 1;单元测试void test_readData()Student sList10;int len=0;char fileName=studentData.txt;int flag = readData(fileName, sLis

35、t, &len);int i;if(flag=1)for(i=0; ilen; i+)printStudent(sListi);elseprintf(文件访问出错!);studentData.txt文件的内容:20144055001 冯午阳 男 14通信1 7#10120144055001 冯午阳 男 14通信1 7#10220144055001 冯午阳 男 14通信1 7#10320144055001 冯午阳 男 14通信1 7#1042)保存数据函数原型 int saveData(char fileName, Student sList, int len);函数定义int saveData

36、(char fileName, Student sList, int len)int i;FILE* fp = fopen(fileName,w); if(fp=NULL)return 0;for(i=0; ilen; i+)fprintf(fp,%s %s %s %s %sn,sListi.sid,sListi.name, sListi.sex,sListi.sClass,sListi.dorm);fclose(fp);return 1;单元测试void test_saveData()Student sList10;int len=0;char fileName=studentData.txt;char fileName2=studentData2.txt;int flag = readData(fileName, sList, &len);int i;if(flag=1)for(i=0; ilen; i+)printStudent(sListi);elseprintf(文件访问出错!);strcpy(sList0.name,fwy);saveData(fileName2, sList, len);studentData2.txt文件中的内容:20144055001 fwy 男 14通信1 7#

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服