学生成绩管理系统设计任务书.doc_第1页
学生成绩管理系统设计任务书.doc_第2页
学生成绩管理系统设计任务书.doc_第3页
学生成绩管理系统设计任务书.doc_第4页
学生成绩管理系统设计任务书.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生成绩管理系统设计任务书一、需求分析本程序用VC+6.0编写,可以实现学生成绩的如下功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。1、添加功能模块本程序共录入6名同学的成绩信息,还可以根据需要继续录入更多同学的成绩,包括学生的学号、姓名、大学英语成绩、毛概成绩、数据结构成绩、数据库成绩。2、查询功能模块可以通过学生的学号或者是姓名两项信息来查询学生的各科成绩。二、概要设计1、功能设计(1).struct score定义一个学生成绩结构体,用来存放学生的各科成绩,包括大学英语、毛概、数据结构、数据库成绩,均定义为float类型。(2).void input()将从键盘上获得的学生的各项信息,包括学生的学号、姓名以及其各科成绩录入到系统内,实现学生成绩信息的录入。(3) void search1()通过学生的姓名进行成绩查询,如果用户输入的信息未出现在录入信息中,则提示用户“对不起!您要查询的学生成绩不存在!”(4)void search2()通过学生的学号进行成绩查询,如果用户输入的信息未出现在录入信息中,则提示用户“对不起!您要查询的学生成绩不存在!”(5)void change()通过用户提供的学生的姓名进行学生成绩的修改。(6) void shanchu()通过用户提供的学生的学号进行学生成绩的删除,如果用户输入的学号在系统中不存在,则提示用户“对不起!您要删除的学生不存在!”(7) void display()用来显示本系统功能的菜单。在主函数中作为被调用函数(8)void show()用来显示所输入的学生的成绩,包括学生的姓名、学号以及各科成绩。(9)void readin()用来保存学生的各项数据。将成绩信息保存在C:Documents and SettingsAdministrator桌面总评成绩.txt中(10)void chushihua()用来初始化学生的各项信息,即删除所有学生的成绩,保存在C:Documents and SettingsAdministrator桌面总评成绩.txt中的成绩信息也相继删除2 、算法流程图退出程序Shanchu()实现学生成绩的初始化Change()实现学生成绩的修改Input()实现学生成绩的录入学生成绩的查询Struct score()为学生成绩结构体,保存学生成绩信息Readin()保存学生成绩数据于txt文件中Search2()实现按学号查询学生成绩Search1()实现按姓名查询学生成绩Show()输出所有学生成绩信息Show()显示学生成绩学生成绩管理系统三、详细设计1、.详细代码分析1.1主函数模块 :使用switch语句,调用类中显示菜单函数display()将主菜单中对学生成绩进行各种所需操作,录入、查询、修改、保存等等操作从而完成对学生成绩管理操作void main() /主函数 char x; bool flag2=0; student *head=new student; /初始化学生数据 head-next=NULL; coutx; if(x=0&x=7) flag2=1; else cout指令错误!endl; cout 请选择相应的数字进行操作: ; break; while(flag2=0); switch(x) case 1:cout*进行学生成绩输入*n; input(head); cout输入的学生信息为:n; show(head); cout*n; display(); break; case 2: char z; cout*进行学生成绩查询*n; cout请选择查询方式:; coutz; while(z!=0&z!=1) cout指令错误!endl; coutz; switch(z) case 1: search1(head);break;/按姓名查询 case 2: search2(head);break;/按学号查询 cout*n; display(); break; case 3: cout*进行学生成绩修改*n; change(head); /按姓名修改 cout*n; display(); break; case 4: cout*进行显示学生成绩*n; show(head); /显示数据 cout*n; display(); break;case 5:cout*进行保存学生成绩*n; readin(head); /保存信息cout*n; display(); break; case 6: cout*进行学生成绩删除*n; shanchu(head); /删除show(head); cout*n; display(); break; case 7:cout*进行初始化学生成绩*n; chushihua(head);/初始化 cout*n; display() ; break; case 8: cout*n; cout 您已退出学生成绩管理系统, 谢谢您的使用! n; cout*n; coutendl; exit(0); break; while(flag2=1); 1.2定义一个学生成绩结构体:通过其完成对学生成绩信息的输入保存等操作 struct score /学生成绩结构体 float dxyy; float mg; float sjjg; float sjk;struct score *next; ;1.3定义学生数据类:对主函数中所用到的函数在class类中进行成员函数的代码编写class student *next; ; /函数声明void input(student *head); /输入 void search1(student *head); /姓名查询 void search2(student *head); /学号查询 void change(student *head); /修改 void shanchu(student *head); /删除 void display(); /显示菜单 void show(student *head); /显示数据 void readin(student *head); /保存数据 void chushihua(student *head); /初始化void display() /显示菜单 cout 1.录入 n;cout 2.查找 n;cout 3.修改 n;cout 4.显示 n;cout 5.保存 n;cout 6.删除 n;cout 7.初始化 n;cout 8.退出 n;cout 请选择相应的数字进行操作: ; void input(student *head) /输入学生成绩 char c; int j=0; student *p=head; filej=new ofstream(F:课设总评成绩.txt,ios:app); do student *stu=new student; cout请输入学号(4位数字):(*stu).number; cout请输入姓名:(*stu).name; cout请输入大学英语成绩:(*stu).sc1.dxyy; cout请输入毛概成绩:(*stu).sc1.mg; cout请输入数据结构成绩:(*stu).sc1.sjjg; cout请输入数据库成绩:(*stu).sc1.sjk; stu-next=p-next; p-next=stu; amount+; coutc; p=p-next; while(c!=y&c!=n) cout指令错误!endl; coutc; while(c=y); j+; cout输入了 amount个学生的信息.next; bool flag=0; coutname; do if(stu!=NULL&name=(*stu).name) /输出总成绩 flag=1; cout您要查询的学生是:nameendl; cout| 学号 | 姓名 |大学英语 | 毛概 | 数据结构 | 数据库 |endl; cout| setw(4)(*stu).number; cout | setw(8)(*stu).name; cout | setw(4)(*stu).sc1.dxyy; cout | setw(4)(*stu).sc1.mg; cout | setw(4)(*stu).sc1.sjjg; cout | setw(4)(*stu).sc1.sjk;cout | next; while(stu!=NULL); if(flag=0) cout对不起!您要查询的学生不存在!endl; coutc; while(c!=y&c!=n) cout指令错误!endl; coutc; while(c=y); void search2(student *head)/学号查询 char c;string no; do student *stu=head-next; int flag=0; coutno; do if(stu!=NULL&no=(*stu).number) flag=1; cout您要查询的学生是:nameendl; cout| 学号 | 姓名 |大学英语 | 毛概 | 数据结构 | 数据库 |endl; cout| setw(4)(*stu).number; cout | setw(8)(*stu).name; cout | setw(4)(*stu).sc1.dxyy; cout | setw(4)(*stu).sc1.mg; cout | setw(4)(*stu).sc1.sjjg; cout | setw(4)(*stu).sc1.sjk;cout | next; while(stu!=NULL); if(flag=0) cout对不起!您要查询的学生不存在!endl; coutc; while(c!=y&c!=n) cout指令错误!endl; cout您想继续查询吗?(y/n)c; while(c=y); void change(student *head)/修改学生数据 string name; char c; do bool flag2=0; student *stu=head ; score sc1; coutname; do if(name=(*stu).name) flag2=1; coutsc1.dxyy; coutsc1.mg; coutsc1.sjjg;coutsc1.sjk; cout| 学号 | 姓名 |大学英语 | 毛概 | 数据结构 | 数据库 |endl; cout| setw(4)(*stu).number; cout | setw(8)(*stu).name; cout | setw(4)(*stu).sc1.dxyy; cout | setw(4)(*stu).sc1.mg; cout | setw(4)(*stu).sc1.sjjg; cout | setw(4)(*stu).sc1.sjk; cout | endl; coutnext; while(stu!=NULL); if(flag2=0) cout对不起!您要修改的学生不存在!请检查重新输入!endl; coutc; if(c!=y&c!=n) cout指令错误!请重新输入!; cinc; while(c=y); void show(student *head) /显示学生数据 student *stu=head; cout| 学号 | 姓名 |大学英语 | 毛概 | 数据结构 | 数据库 |next!=NULL) stu=stu-next; cout| setw(4)(*stu).number; cout |setw(8)(*stu).name; cout | setw(4)(*stu).sc1.dxyy; cout | setw(4)(*stu).sc1.mg; cout | setw(4)(*stu).sc1.sjjg; cout | setw(4)(*stu).sc1.sjk;cout |next; couta; ofstream outfile(C:Documents and SettingsAdministrator桌面总评成绩.txt,ios:out); if(! outfile) cout打开文件错误!n; exit(0); while(a!=n) while(stu!=NULL) outfile*第amount个学生的数据:*n; outfile| 学号 | 姓名 |大学英语 | 毛概 | 数据结构 | 数据库 |endl; outfile 成绩: n | setw(4)(*stu).number |setw(8)(*stu).name |setw(4)(*stu).sc1.dxyy | setw(4)(*stu).sc1.mg | setw(4)(*stu).sc1.sjjg | setw(4)(*stu).sc1.sjknext; break; cout.成功将学生数据保存到中! ; outfile.close(); void shanchu(student *head)/以学号删除学生成绩 char c;string no; do int flag=0; coutno; student *q,*p; q=head; while(q-next!=NULL&q-next-number!=no) q=q-next; if(q-next!=NULL) flag=1; p=q-next; q-next=q-next-next; amount-; free(p); cout.成功删除! ; if(flag=0) cout对不起!您要删除的学生不存在!endl; coutc; while(c!=y&c!=n) cout指令错误!endl; coutc; while(c=y); void chushihua(student *head) /初始化学生数据 int j=0;char c; cout注意:初始化操作将删除文件中的所有信息!n; coutc; if (c=y) amount=1; filej=new ofstream(C:Documents and SettingsAdministrator桌面总评成绩.txt,ios:out); cout.成功清除的信息n ; (2) 该系统代码所需的头文件#include #include #include #include using namespace std; int amount=0; /记录学生个数 ofstream *file502.调试分析2.1调试结果(1) 系统界面(2)录入功能(3)查找功能(4)修改功能(5)显示功能(6)保存功能(7)删除功能2.2算法分析本程序主要以学生为结点以链表的形式进行成绩的存储以及其他相关的操作,在输入成绩的过程中student *head=new student完成初始化学生数据操作,才进行输入成绩,使用stu -next= p-next, p-next=stu 完成对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论