C++课程设计报告学生成绩管理系统设计报告_第1页
C++课程设计报告学生成绩管理系统设计报告_第2页
C++课程设计报告学生成绩管理系统设计报告_第3页
C++课程设计报告学生成绩管理系统设计报告_第4页
C++课程设计报告学生成绩管理系统设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、 课程设计报告课程名称:计算机高级语言(c+)课程设计课程设计题目:学生成绩统计管理系统系:数学与计算科学系专 业:信息与计算科学年级、班:信计0901姓 名:学 号:指导教师:职 称:2010年12月学生成绩管理系统设计报告1系统分析(需求分析)1.1需求分析:能够实现学生学号、姓名、各科成绩的录入;能够实现对学生信息的浏览、查找、删除;能够实现对学生信息按学号顺序显示,成绩排名; 能够对各科成绩统计情况输出。1.2系统性能要求:系统安全、可靠;功能齐全;操作方便、界面友好;易于维护和扩充。1.3系统的功能分析:资料维护:系统维护包括对各学生姓名、成绩、学号的录入操作,对数据表中的信息进行浏

2、览。成绩查询:可以对学生成绩进行详细查询及各科成绩的优秀和不及格人数、各科总平均成绩等相关信息的浏览。排序显示:包括统计学生排名成绩、不及格科目情况、各科总平均成绩。2概要设计2.1程序设计总体结构学生成绩管理系统录入删除查找修改保存排序退出系统2.2系统功能模块主函数流程图学生成绩查询系统功能主函数有:成绩录入、查询修改、排序显示。退出查找修改保存data,txt开始系统菜单选择删除添加清空排序3.功能的实现思路:本程序采用了单文件结构,对各部分的功能实现具体如下:3.1 “成绩录入”模块:3.1.1序号录入:对各个学生序号录入3.1.2数据录入:对学生科目和成绩进行录入3.2 “查询修改”

3、模块:3.2.1可以对学生数据进行指定查找、修改或查看全部学生信息。3.2.2选择输出单科成绩统计情况。3.3 “排序显示”模块:3.3.1可自行按学号顺序显示所有学生信息。3.3.2可选择查看学生总分排名,排序显示到用户屏幕。3.4其他功能的实现在这个程序中定义了一个标志flag去判断数据是否修改,是否保存。文件的读写等功能的具体实现都应用了恰当的方式。4.系统测试程序测试结果良好,基本实现了所有要求屏幕截图如下:5. 设计总结此次c+课程设计,在指导教师的精心教导下,我们学会了如何用c+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设

4、计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据c+课程所学的概念、理论和方法,按照c+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对c+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。6. 参考文献1、陈雪飞著c+实例入门 中国青年出版社2、谭浩强著c程序设计(第二版)北京:清华大学出版社19993、谭浩强著c+程序设计北京:清华大学出版社 20047. 学生成绩数据管理系统源代码

5、(附:)#include#include#include#include#include#includeusing namespace std;struct student int id; /学号 string name; /姓名 float score3; /分数 float sum;/总分;extern const int maxnum; /声明maxnum变量void insert(student *s); /插入学生数据void delete(student *s,int n); /删除学号为n的学生数据void clear(student *s);/清除所有学生数据int searc

6、h(student *s,int n);/查找学号为n的学生,返回其索引号(数组下标)void find(student *s,int n);/查找并显示学号为n的学生的信息void view(student *s);/查看所有学生的信息void load(student *s);/从文件中载入学生信息void save(student *s);/将学生信息保存到文件void revise(student *s);/修改学生数据void tongji(student *s);/查看各科成绩统计void paiming(student *s);/查看排名void exit(student *s)

7、; /安全退出void showmenu(); /显示菜单void showtip(); /显示操作提示void domenu(student *s,char n);/执行相应菜单项功能int main() student smaxnum; /定义保存学生数据的数组 load(s); /载入学生数据 char ch=9; showmenu(); /显示菜单 coutch; system(cls); /清除屏幕 showmenu(); /显示菜单 domenu(s,ch); /执行菜单 showtip(); /显示提示 int num,i; /学生人数bool flag=true; /数据是否修

8、改过的标志const int maxnum=100; /学生人数允许的最大值void insert(student *s) /插入学生数据 student t; cout学号为整数,输入0终止录入endl; while(1) if(num=(maxnum-1) cout学生人数已达最大值!endl; return; coutt.id) /输入的不是数字,重新提示输入 cout学号应为整数!0) /查找此学号是否已存在 cout此学号已存在!endl; continue; if(t.id=0) /输入0结束录入 cout录入结束。endl; return; cin.sync(); /清空输入缓冲

9、区 cout请输入姓名:; getline(cin,); /读取一行 if(=) /如读取的为空串,则设name为null =null; coutt.score0t.score1t.score2; +num; /学生人数增1 snum=t; /将新录入的学生加入数组中 flag=true; /数据已改动 void delete(student *s) /删除学生 if(num=0) cout无学生!endl; else int n,m=0; char q; coutn; m=search(s,n); /查找学号为n的学生的索引号(在数组中的下标) if(m=

10、0) /search()返回0表示没找到 cout找不到要删除的学生!; return; /结束删除操作 else coutq; if(q=y|q=y) for(int i=m; inum; i+) /删除sm处的学生 si=si+1; -num; /人数减1 flag=true; /数据已改动 cout成功删除学号为n的学生endl; else return; void clear(student *s)/清除所有学生数据 num=0; /设置学生人数为0int search(student *s,int n)/查找学号为n的学生,返回其索引号(数组下标) for(int i=1; i=nu

11、m; i+) if(si.id=n) return i; /返回找到的学生的索引号(数组下标) return 0; /没找到,返回0,void find(student *s)/查找并显示学生的信息 int n; coutn; int i=search(s,n); /查找学号为n的学生,返回其索引号(数组下标) if(i=0) cout查无此人!endl; else coutsetw(6)学号 setw(10)姓名setw(6)语文 setw(6)数学setw(6)英语endl; coutsetw(6)si.id setw(10)ssetw(6)si.score0 setw(6)s

12、i.score1setw(6)si.score2endl; void view(student *s)/查看所有学生的信息 char n; student r; if(num=0) cout无学生记录!; else cout共有num条学生记录endl; coutsetw(6)学号 setw(10)姓名setw(6)语文setw(6) 数学setw(6)英语setw(6)总分setw(8)平均分endl; for(int j=1; j=num; j+) for(int i=1; isi+1.id) r=si; si=si+1; si+1=r; for(int i=1; i=num; i+) s

13、i.sum=si.score0+si.score1+si.score2; float b=si.sum/3.0; coutsetw(6)si.id setw(10)ssetw(6) si.score0setw(6)si.score1setw(6)si.score2 setw(6)si.sumsetw(8)setprecision(3)bendl; coutn; if(n=y|n=y) tongji(s); coutendl; paiming(s); else return; flag=true; void load(student *s)/从文件中载入学生信息 student t;

14、 ifstream infile(data.txt); /创建文件输入流,文件位于项目文件夹中 if(!infile) cerrsi.id; i+) /从文件中读取保存的学生数据 infilessi.score0si.score1si.score2; num+; flag=false; /设置数据没改动 infile.close(); /关闭文件void save(student *s)/将学生信息保存到文件 ofstream outfile(data.txt); /创建文件输出流 if(!outfile) cerr错误:数据文件不能打开!n; else for(int i=1;

15、i=num; i+) /将学生数据写入文件 outfilesi.id s si.score0 si.score1 si.score2endl; flag=false; /设置数据没改动 cout保存成功!endl; void exit(student *s) /安全退出 char s=y; if(flag) /判断数据是否修改 couts; if(s=y|s=y) save(s); /保存数据 cout已安全退出,; system(pause); /程序暂停,按任意键继续 exit(0); /结束程序void showmenu() /显示菜单 cout|-|endl; cout|

16、学生信息管理系统 |endl; cout|- -|endl; cout| 1.清空:清除所有学生数据 |endl; cout| 2.添加:插入一条学生数据 |endl; cout| 3.删除:删除指定学生数据 |endl; cout| 4.查找:查找指定学生数据 |endl; cout| 5.显示:显示所有学生数据 |endl; cout| 6.修改:修改所有学生数据 |endl; cout| 7.保存:保存所有学生数据 |endl; cout| 0.退出:安全的退出本系统 |endl; cout|-|endlendl;void showtip() /显示操作提示 coutendl; cout

17、-操作完成-endl; cout-选择06继续-endl; cout请选择:;void domenu(student *s,char n) /执行相应菜单项功能 switch(n) case 1: clear(s); break; case 2: insert(s); break; case 4: find(s); break; case 3: delete(s); break; case 5: view(s); break; case 6: revise(s); break; case 7: save(s); break; case 0: exit(s); break; default: c

18、out输入错误!; void revise(student *s)/修改学生信息 int n,a; char m; string name; coutn; int i=search(s,n); if(i=0) cout查无此人!endl; else coutsetw(6)学号 setw(10)姓名setw(6)语文 setw(6)数学setw(6)英语endl; coutsetw(6)si.id setw(10)ssetw(6) si.score0setw(6)si.score1setw(6)si.score2endl; coutm; switch(m) case 1: coutn

19、ame; s=name; break; case 2: couta; si.score0=a; break; case 3: couta; si.score1=a; break; case 4: couta; si.score2=a; break; default: cout输入错误!请再输入编号:; flag=true; void tongji(student *s)/查看各科成绩统计 system(cls); showmenu(); coutsetw(14)语文setw(6)数学setw(6)英语endl; float m=0,n=0,l=0; int a=0,b=0,c=0,e=0,f=0,g=0; for(int i=1; i=90) a+; else if(si.score060) e+; if(si.sc

温馨提示

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

评论

0/150

提交评论