




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程名称:软件工程设计设计题目: 学生成绩信息管理系统设计 院 系: 计算机与通信工程系 专 业: 铁道信号 年 级: 级 姓 名: 指导教师: 西南交通大学峨眉校区20 年 月 日课 程 设 计 任 务 书专 业 铁道信号 姓 名 学 号 开题日期: 年 月 日 完成日期: 年 月 日题 目 学生成绩信息管理系统设计 一、初始条件:理论:学完计算机基础知识,掌握C+语言编程基础和VC开发平台的使用。实践:计算机科学系实验中心提供计算机及软件开发环境。二、要求完成的主要任务: (1)系统需求分析,得到系统的数据需求和功能需求,分析结果用表格记录。 (2)系统设计,包括内存数据结构设计、数据文
2、件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。要求内存数据用链表组织,数据文件用文本文件,用户界面用字符界面。至少实现数据记录的增加、修改、删除、查询(查询应能按不同数据项进行)。(2)编制好程序后,设计若干测试用例,上机测试所设计的程序。(4)设计报告按格式要求书写。设计报告正文的内容应包括:1)系统描述:包括问题说明、数据需求和功能需求。2)系统设计:包括内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。3)系统测试:包括测试用例的描述、测试方法和测试结果。4)设计的特点、不足、收获和体会。1. 系统需求分析学生成绩信息管理数据分析表编号
3、数据项数据类型数据长度描述1学生成绩信息字符串未知一个学生全部成绩信息2状态器整形32表示此时输入状态3链表节点NodeLink未知学生全部成绩信息学生成绩信息管理功能分析表编号功能描述1列出功能列表通过功能列表知道你可以进行哪些操作2查询学生成绩此项可以通过学号或姓名查询学生成绩信息3增加学生成绩信息此项可以增加未保存的学生的成绩信息4删除学生成绩信息此项可以通过学号或姓名删除已储存的学生成绩信息5修改学生成绩信息此项可以通过学号或姓名来修改已储存的学生成绩信息6 退出程序退出本程序并保存相关修改到文件中2. 系统描述 通过建立各种函数来实现学生成绩的查询,基本功能是:通过系统的提示进行学生
4、成绩的各种查询。就是通过输入学生的学号就可以进行:查询,增加,删除,修改。 所用到的数据结构有:typedef struct NodeLinkstring person;NodeLink *next;*L; 这个数据结构用来储存各个学生的成绩信息,这些信息都存储在一个string类型中void search_score(); /通过学号查找学生成绩信息void search_score2(); /通过姓名查找学生成绩信息int add_person(); /增加未保存的学生成绩信息void dele_person(); /通过学号删除学生成绩信息void dele_person2(); /通过
5、姓名删除学生成绩信息void amend_person(); /通过学号修改学生成绩信息void amend_person2(); /通过姓名修改学生成绩信息void in_put(); /文本文件的内容输入到一个链表个void out_put(); /把链表中的内容输出到文本中3系统设计下面是数据文件设计的一个截图:分别表示为:学号 姓名 高数 大学英语 数据结构 数字逻辑 体育。下面为程序源代码:#include<iostream>#include<string>#include<fstream>#include<sstream>using
6、namespace std;typedef ifstream in_file;typedef ofstream out_file;typedef istringstream in_s;typedef struct NodeLinkstring person;NodeLink *next;*L;void in_put(NodeLink *&L) /文件yjx.txt的输入string score_person;NodeLink *p,*q;in_file in_p("yjx.txt");if(!in_p)cout<<"文件打开失败"&l
7、t;<endl;while(getline(in_p,score_person)p=new NodeLink;if(L = 0) L=p; else q->next=p;q=p;p->person=score_person;p->next=0;cout<<"读入文件成功"<<endl;in_p.close();void out_put(NodeLink *&L) /结果输出到yjx.txt中NodeLink *p=L;ofstream out_s;out_s.open("yjx.txt");if(!
8、out_s)cout<<"文件打开失败!"<<endl;while(p)out_s<<p->person<<endl;p=p->next;out_s.close();void search_score(NodeLink *&L) /通过学号学生信息查询string score_person,score_person2;NodeLink *p;p=L;cout<<"请输入待查询的学号:"cin>>score_person;while(p)in_s str(p->
9、;person);str>>score_person2;if(score_person=score_person2)cout<<"您要查询学生成绩信息如下:"<<endl <<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl<<p->person<<endl;break;p=p->next;if(p=NULL)cout<<"查无此学号,请确认后再输入。"<<endl;void search_sco
10、re2(NodeLink *&L) /通过姓名学生信息查询string score_person,score_person2;NodeLink *p;p=L;cout<<"请输入待查询的学生姓名:"cin>>score_person;while(p)in_s str(p->person);str>>score_person2;str>>score_person2;if(score_person=score_person2)cout<<"您要查询学生成绩信息如下:"<<e
11、ndl <<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl<<p->person<<endl;break;p=p->next;if(p=NULL)cout<<"查无此名字,请确认后再输入。"<<endl;int add_person(NodeLink *&L) /学生信息增加 string name_person,name_person2;string i,j,k,l,m,n,o;NodeLink *p=L;NodeLink *q;NodeL
12、ink *a=L; cout<<"请输入要增加的学生成绩信息:"<<endl<<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl;cin>>i>>j>>k>>l>>m>>n>>o;while(a)in_s str(a->person);str>>name_person2;if(i=name_person2)cout<<"学号:"<<i<&
13、lt;"已存在"<<"请重新输入"<<endl;return 0;a=a->next;name_person=i+" "+j+" "+k+" "+l+" "+m+" "+n+" "+o;q=new NodeLink;q->person=name_person;q->next=0;while(p->next)p=p->next;p->next=q;p=p->next;p=0
14、;cout<<"加入成功!"<<endl;return 0;void dele_person(NodeLink *&L) /通过学号学生信息删除string score_person,score_person2;NodeLink *p=L;NodeLink *q;cout<<"请输入要删除学生成绩的学号:"cin>>score_person;while(p)in_s str(p->person);str>>score_person2;if(score_person=score_pe
15、rson2)cout<<"此学生的成绩信息如下:"<<endl <<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl<<p->person<<endl;if(p=L)L=L->next;elseq->next=p->next;p=q;cout<<"该学生成绩信息已删除"<<endl;break;q=p;p=p->next;if(p=NULL) cout<<"查无此学号,
16、请确认后再输入。"<<endl;void dele_person2(NodeLink *&L) /通过姓名学生信息删除string score_person,score_person2;NodeLink *p=L;NodeLink *q;cout<<"请输入要删除学生姓名:"cin>>score_person;while(p)in_s str(p->person);str>>score_person2;str>>score_person2;if(score_person=score_pers
17、on2)cout<<"此学生的成绩信息如下:"<<endl <<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl<<p->person<<endl;if(p=L)L=L->next;elseq->next=p->next;p=q;cout<<"该学生成绩信息已删除"<<endl;break;q=p;p=p->next;if(p=NULL) cout<<"查无此学号,请确
18、认后再输入。"<<endl;void amend_person(NodeLink *&L) /通过学号学生信息修改string score_person,score_person2,score_person3,name_person2;string h,i,j,k,l,m,n,o;NodeLink *p=L;NodeLink *q=0;NodeLink *a=L;cout<<"请输入要修改学生的学号:"cin>>score_person;while(p)in_s str(p->person);str>>
19、score_person2;if(score_person=score_person2)cout<<"此学号的成绩信息如下:"<<endl <<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl <<p->person<<endl <<"请输入要修改的信息:"<<endl <<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl<<score_p
20、erson2<<" "i=score_person;cin>>j>>k>>l>>m>>n>>o; score_person3=i+" "+j+" "+k+" "+l+" "+m+" "+n+" "+o;p->person=score_person3;cout<<"修改已成功"<<endl;break;p=p->next
21、;if(p=NULL) cout<<"查无此学号,请确认后再输入。"<<endl;void amend_person2(NodeLink *&L) /通过姓名学生信息修改string score_person,score_person2,score_person3,name_person2;string h,i,j,k,l,m,n,o;NodeLink *p=L;NodeLink *q=0;NodeLink *a=L;cout<<"请输入要修改学生的姓名:"cin>>score_person;whi
22、le(p)in_s str(p->person);str>>score_person2;str>>score_person2;if(score_person=score_person2)cout<<"此学生的成绩信息如下:"<<endl <<"学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl <<p->person<<endl <<"请输入要修改的信息:"<<endl <<&
23、quot;学号 姓名 高数 大学英语 数据结构 数字逻辑 体育"<<endl<<" "<<score_person2<<endl;j=score_person;cin>>i>>k>>l>>m>>n>>o; score_person3=i+" "+j+" "+k+" "+l+" "+m+" "+n+" "+o;p->pers
24、on=score_person3;cout<<"修改已成功"<<endl;break;p=p->next;if(p=NULL) cout<<"查无此学号,请确认后再输入。"<<endl;int main() /主函数string s;NodeLink *L=0; /链表建立in_put(L);int i;docout<<endl<<"请选择所需操作:"<<endl<<"1.查询学生成绩信息:"<<end
25、l<<"2.增加学生成绩信息:"<<endl<<"3.删除学生成绩信息:"<<endl<<"4.修改学生成绩信息:"<<endl<<"5.退出程序"<<endl;cin>>i;switch(i) case 1:int b;cout<<"1.通过学号查询:"<<endl<<"2.通过姓名查询:"<<endl;cin>&
26、gt;b;if(b=1) search_score(L);if(b=2)search_score2(L);break; case 2: add_person(L);break; case 3:int c;cout<<"1.通过学号删除:"<<endl<<"2.通过姓名删除:"<<endl;cin>>c;if(c=1) dele_person(L);if(c=2) dele_person2(L);break; case 4:int d;cout<<"1.通过学号修改:"<<endl<<"2.通过姓名修改:"<<endl;cin>>d;if(d=1)amend_person(L);if(d=2)amend_person2(L);break; if(i!=1&&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025艺人经纪合同
- 劳务利润分配协议书
- 分包协议安全协议书
- 动迁钥匙赔偿协议书
- 商户转移货品协议书
- 医院帮扶农民协议书
- 员工销售承包协议书
- 土地民事调解协议书
- 厨房顾问合同协议书
- 合伙餐馆经营协议书
- 国画、书法砚台企业数字化转型与智慧升级战略研究报告
- 2025年春季学期 形势与政策讲稿第五讲-从教育大国迈向教育强国
- 2025年浙江乐清市金融控股有限公司招聘笔试参考题库含答案解析
- ktv股份入股协议书范本
- 医疗行风建设培训
- 高教社马工程民法学(第二版)上册教学课件01-06
- 消防预算管理制度内容
- 《社会化网格治理研究的国内外文献综述》5700字
- 2025年上海市高考语文9道模拟作文题:含范文+详细解析+参考立意
- 1-41届全国中学生物理竞赛预赛试题 第40届(2023年) 含答案
- 房屋市政工程生产安全重大事故隐患判定标准(2024版)宣传画册
评论
0/150
提交评论