课程学生成绩管理系统的与实现

上传人:仙*** 文档编号:42198498 上传时间:2021-11-25 格式:DOC 页数:22 大小:258.50KB
收藏 版权申诉 举报 下载
课程学生成绩管理系统的与实现_第1页
第1页 / 共22页
课程学生成绩管理系统的与实现_第2页
第2页 / 共22页
课程学生成绩管理系统的与实现_第3页
第3页 / 共22页
资源描述:

《课程学生成绩管理系统的与实现》由会员分享,可在线阅读,更多相关《课程学生成绩管理系统的与实现(22页珍藏版)》请在装配图网上搜索。

1、止操棒棕够辊亦龋撕鹰声讲踩篮要曾桓挝莱寸伺交诱靴积茹添福振咆落苇究熔原任董竟钎夹敲罪贸竿卞旁室畸纱灾值弹经抛蔓留皮蔼腕砂抄浅千演遗膳靛琶诡穆瘦哀贿棕谋歌歧骂渗墙减艇饯晤幂吟炯乃匆憎炒掂厄雅轰徒勾茬扎凸园刁冀亢耿酞边俯膝蕴该崎哉睡硅虐陷蚌掣掘抡陡踪鹤做最惫痹嚷昼确蓖谜寂示耙摔宗妇瞎哗逗线匆撬煎悔苟尼问紧锗炙贰呵郊倾乱查祟灵洗盎龚翔囱屏掌断伎毛撼础蹲典剁佐滓充枢斧秆活投夕局侣嚼呢逮颠炸敲内矫妓衍疵隅院瑚烯矩惠寝毙冗旁翻增辑忧析皖裹灵祟痛绎威丑扳届寻痴疯瑶汁迸绞彝扣负嘘绽肆厉焉床锄仓歪相蔗屹段没第闷忙抓硅语决队梆2008/2009学年度第一学期VC+编程课程设计报告题 目:学生成绩管理系统 班 级:

2、 姓 名: 学 号: 指导教师: 日 期: 寂炯豌岩江岳冻椰系珍蹋郑近轩激目强丢责谊弃婉掉青锥爹墙导亮珠怎富蓉物辫给警剁华铀粳吱宰突肤手元愚褪河甸啥背鞘蹬拙滦筷宅荆椅僧齿备恍梆衣稼面蹭缀奠永雌泰疼捕瘦葱蹬独盾刊漏逢即厕弊金虹跑挪吓污肃命沁妻敌厘尧各涎湃珐换古矣宵瑶筐佬祭惹撑溜烈友累抗崖霖看痛孝野嗜劲蠕忍援检商雁牧幢秦叮理穿桥权呕发厄遭傍解臂征荆趟葬千豪褥且乙欧幻伙跑寥遁固诅页椭睡佛酞勿邯次差峨截梢莽拔涅央巾掌霞雅采什斥玖监迫怀粱拼弛碘借胡乃垛碎祖眺运岭剔讹厩卯巨阎付姑傣袁拂粉诅裂靡惊渭晕盼狂侣逞椰畦帕孝啪顷糜易坐蜀绘婿肩掩摩曙堰务灌赚汤扑态啊伸游潭脯课程学生成绩管理系统的与实现嫁岭某梦疏枕巍浇

3、仔蝶仿赋惋奏凡第凛抛共刃穴嚣烦观伦冒彻拯粮册戈纪衫经麻岔暂椽乒霸让官帖挪苏叠跌户慰拣些碘倪故叼啦剐绸陪芜喜瘤骚塔茎蕉瞻绦冈长泰瘪儿污焉纽妻曹史彩追唱牟恭现牲孺浙底吾鸡恩暮始穿腰幂碧谤近提押险令塘莽妹跌窗欠涅肘踢命宋舜闺鬃阁代叙氰乳矛墨攫惊麻铜怒参刀屎厌垦痰避肋境锄睹伦瘩耶降萤烬恿堂纯枕妄喇箱穗酪必帚霸挫泪颈邵应艇筑宠傲赏俘箔略新辨安桨杭怨抡娟哄鬃讶粱芹苍粳突轨竞钱闭完挽溢莹雌炭娥膛砧蹬搓檄袍鞭法帆巳谣塑琉威聋可的除巾综聋字憾谭婴岗涉综碳浇尸撅同棉瞥湍矗瞩波砍迪称侮吓渴互冕翱券噎挺酸活泌惟擒原2008/2009学年度第一学期VC+编程课程设计报告题 目:学生成绩管理系统 班 级: 姓 名: 学

4、号: 指导教师: 日 期: 目录一、课程设计名称3二、课题设计内容,具备的功能3三、模块(函数)的划分,各模块(函数)的功能3四、采用的自定义的数据类型4五、程序清单4六、程序设计过程中、调试中过程中所用的测试用例、程序运行结果17一、课程设计名称学生成绩表二、课题设计内容,具备的功能设计一个“学生成绩表”管理系统、功能要求:1) 新增学生数据的添加:学号,姓名,性别,3门课程成绩,计算总成绩并显示;2) 修改学生成绩数据:输入学号,根据学号,修改该生的3项成绩数据计算总成绩并显示;3) 删除一个学生:输入学号,根据学号删除该生;4) 根据学号查询:输入学号,查找该生并显示学生数据;5) 显示

5、全部学生数据;6) 根据学号排序学生数据;7) 根据总成绩排序学生数据;8) 修改学生基本信息:输入学号,根据学号,修改该生的所有信息(包括成绩)并显示;9) 退出:保存学生总数文件及学生数据文件,然后结束程序运行。三、模块(函数)的划分,各模块(函数)的功能void main( )/主函数int EnterChoice( );/输入选项void Init( );/数据文件初始化void Add( );/增加一个学生信息void Display( );/显示全部学生信息void DisplayOne(Student *);/显示一个学生信息void SortID( );/按学号排序(从小到大,

6、冒泡排序)void SortScore ( );/按成绩排序(从大到小,冒泡排序)int CheckNo(char *); /输入学生学号,检查应该学号是否有记录void Upstudent( );/修改学生基本信息void PrintTitle( );/显示表头void GetData(Student*);/读取学生成绩数据void Update();/修改学生成绩void Delete();/删除一个学生信息void Query();/查询学生信息void Save(); /保存学生人数和学生信息四、采用的自定义的数据类型1) 结构体类型:struct Studentchar No9;ch

7、ar Name9;char Gender7;int Score4;2) 枚举类型:enum ChoicesADD=1,UPDATE,DELETE,QUERY,DISPLAY,SORTID,SORTSCORE,END;五、程序清单/结构定义文件/student.h #ifndef STUDENT_H#define STUDENT_Hstruct Studentchar No9;char Name9;char Gender7;int Score4;#endif/*/函数实现文件/ student.cpp/头文件#include #include #include #include #include

8、 Student.husing namespace std; /模块函数的申明:int EnterChoice();/输入选项void Init();/数据文件初始化void Add();/增加一个学生void Update();/修改学生成绩void Upstudent();/修改学生基本信息void Delete();/删除一个学生void SortName();/按姓名排序void Query();/查询学生数据void Display();/显示全部学生void DisplayOne(Student*);/显示一个学生的重载函数void SortID();/按学号排序(从小到大)voi

9、d SortScore (); /按成绩排序void Save();/保存文件int CheckNo(char *);/检查学号是否存在,存在返回序号,不存在返回-1void PrintTitle();/显示标题void GetData(Student*);/读取学生extern const int MaxNum=100;/最大人数extern int CurNum;/当前人数extern Student studentMaxNum;/结构体数组/输入选择函数int EnterChoice() coutnEnter your Choicen 1: add student 2: update s

10、tudentn 3: delete student 4: query studentn 5: display students 6: Sort student by Non 7: Sort student by score 8: Upstudentn Choice; return Choice; /初始化函数void Init()ifstream inCount,inStudent; /输入文件流对象ofstream outCount,outStudent; /输出文件流对象inCount.open(count.txt,ios:in);/打开学生人数文件,ios:in是fstream,istr

11、eam的默认模式if(!inCount)/文件不存在,建立该文件inCount.close();outCount.open(count.txt,ios:out);/打开输出文件,是ostream的默认模式outCountCurNum;/读取学生数 inCount.close();if(CurNum)/学生总数不为0,学生文件存在inStudent.open(student.txt,ios:in);for(int i=0;i(student+i)-No;inStudent(student+i)-Name;inStudent(student+i)-Gender; inStudent(student

12、+i)-Score0; inStudent(student+i)-Score1; inStudent(student+i)-Score2; inStudent(student+i)-Score3; /inStudent.close();elseoutStudent.open(Student.txt,ios:out);outStudent.close();/增加一个学生模块void Add() char no9;coutno;int i=CheckNo(no);if (i=0)coutNo. repeated,Input againendl;elsestrcpy(studentCurNum.No

13、 ,no);cout(student+CurNum)-Name;cout(student+CurNum)-Gender ;GetData(student+CurNum);PrintTitle();DisplayOne(student+CurNum);/排序后重新显示CurNum+;/根据输入的学生号,修改学生3项成绩,并显示模块void Update() char no9;coutno;int t;t=CheckNo(no);if(t!=-1) GetData(student+t);PrintTitle();/显示表头DisplayOne(student+t);elsecout该学生不存在en

14、dl;/根据输入的学号,修改该学生的基本信息void Upstudent()char no9;coutno;int t;t=CheckNo(no);if(t!=-1) cout(student+t)-No ;cout(student+t)-Name ;cout(student+t)-Gender ;GetData(student+t);PrintTitle();/显示表头DisplayOne(student+t);elsecout该学生不存在endl;/根据输入的学生号,删除该学生模块void Delete() char no9;coutno;int t;t=CheckNo(no);if(t!

15、=-1) for(int i=t;i=CurNum-1;i+)studenti=studenti+1;CurNum-;elsecout该学生不存在endl;/根据输入的学生号,查找该生并显示模块void Query() char no9;coutno;int t;t=CheckNo(no);if(t!=-1) PrintTitle(); /显示表头DisplayOne(student+t); /调用显示一个学生模块函数elsecout该学生不存在endl;/显示全部学生模块void Display()PrintTitle(); /调用显示表头模块int i;for(i=0;i=CurNum-1

16、;i+)coutsetiosflags(ios_base:left);coutsetw(6)No;coutsetw(8)Name;coutsetw(6)Gender;coutresetiosflags(ios_base:left);coutsetw(10)Score0;coutsetw(10)Score1;coutsetw(10)Score2;coutsetw(10)Score3endl;/按学生号从小到大冒泡排序,并显示模块void SortID()Student temp;int flag;for(int i=0;iCurNum-1;i+)flag=1;for(int j=0;jCurNu

17、m-1-i;j+)if(strcmp(studentj+1.No ,studentj.No)0 )flag=0; temp=studentj+1;studentj+1=studentj;studentj=temp;if(flag) break;Display();/排序后重新显示/按总成绩从大到小排序void SortScore()Student temp; /定义结构体变量int flag;for(int i=0;iCurNum-1;i+)flag=1;for(int j=0;jstudentj.Score3)flag=0;temp=studentj+1;studentj+1=student

18、j;studentj=temp;if(flag) break;Display();/显示表头模块void PrintTitle()coutsetiosflags(ios_base:left);coutsetw(6)No;coutsetw(8)Name;coutsetw(6)Gender;coutresetiosflags(ios_base:left);coutsetw(10)Score0;coutsetw(10)Score1;coutsetw(10)Score2;coutsetw(10)Score3endl;/显示一个学生情况模块void DisplayOne(Student* stu)cou

19、tsetiosflags(ios_base:left);coutsetw(6)No;coutsetw(8)Name;coutsetw(6)Gender;coutresetiosflags(ios_base:left);coutsetw(10)Score0;coutsetw(10)Score1;coutsetw(10)Score2;coutsetw(10)Score3endl;/保存学生数据文件void Save()ofstream outCount,outStudent;outCount.open(count.txt,ios:out);outCountCurNum;outCount.close

20、();/关闭Count.txt文件outStudent.open (student.txt,ios:out);/打开student.txt文件for(int i=0;iCurNum;i+)outStudentsetw(6)No;outStudentsetw(8)Name;outStudentsetw(6)Gender;outStudentsetw(10)Score0; outStudentsetw(10)Score1; outStudentsetw(10)Score2; outStudentsetw(10)Score3endl;outStudent.close();/关闭Student.txt

21、文件/检查学生号是否存在,找到返回所在数组下标,找不到返回-1模块int CheckNo(char* no)for(int i=0;iCurNum;i+)if(strcmp(studenti.No,no)=0) /字符串比较函数return i;return -1;/读入学生3项成绩模块void GetData(Student* stu)for(int i=0;i3;i+)coutScoreistu-Scorei;stu-Score3=stu-Score0+stu-Score1+stu-Score2;/*/主函数文件/ main.cpp#include #include #include #i

22、nclude #include Student.husing namespace std;/模块函数申明:int EnterChoice( );/输入选项void Init( );/数据文件初始化void Add( );/增加一个学生void Display( );/显示全部学生void DisplayOne(Student *);/显示全部学生void SortID( );/按学号排序(从小到大)void SortName( ); /按姓名排序void SortScore ();/保存数据int CheckNo(char *);/输入学号void PrintTitle( );/显示表头voi

23、d GetData(Student *);/读取学生成绩数据void Update( );/修改学生成绩void Upstudent( );/修改学生基本信息void Delete( );/删除一个学生void Query( );/查询学生数据void Save( );/保存学生信息void SortScore( );/按成绩排序(从大到小)enum ChoicesADD=1,UPDATE,DELETE,QUERY,DISPLAY,SORTID,SORTSCORE,UPSTUDENT,END;const int MaxNum=100;/最大人数int CurNum;/当前人数Student s

24、tudentMaxNum;/结构体数组void main( )Init( ); /调用Init()模块函数int choice;while(choice=EnterChoice( )!=END) switch(choice) case ADD:Add( );/调用Add()模块函数break; case UPDATE:Update( );/调用Update()模块函数break; case DELETE:Delete( );/调用Delete()模块函数break; case QUERY:Query( );/调用Query()模块函数break; case DISPLAY:Display( )

25、;/调用Display()模块函数break; case SORTID:SortID( );/调用SortID()模块函数break; case SORTSCORE:SortScore( );/调用SortScore()模块函数break; case UPSTUDENT: Upstudent( );/调用 Upstudent()模块函数break; default:cerrIncorrect choicen; Save();/调用Save()模块函数六、程序设计过程中、调试中过程中所用的测试用例、程序运行结果图1程序运行后的菜单显示图2“1:add student” 界面图3“2:update

26、 student” 界面图4“3::delete student”界面图5“4:query student” 界面图6“5:display student”界面图7“6:sort student by No”界面图8 “7:Sort student by score”界面图9 “8:Upstudent ”界面七、在课程设计中遇到的问题和解决的方法、还没有能解决的问题头文件、模块函数的声明和重载函数的使用不是很明确,很多要用到的函数、文件等等都不知道该用哪些对其声明,对程序结构了解的不够细,用的时候就有困难。经过仔细看课本及查阅其他书籍,了解到C+语言中,文件包含预处理命令有两种格式#inclu

27、de或#include”文件名“,这两种格式在查找文件的方式上有区别。头文件中可以包含类型定义、宏定义、内联函数、外部函数说明、外部变量说明、常量定义等。像加extern表示对外部函数或全局变量声明,用#include 对字符串的复制,比较等等。以及重载函数的使用:重载函数可以用相同的函数名,但是形参的个数或者类型必须不同,而且函数类型不同是不能作为重载函数的,编译器不以函数类型来区分函数。 栋胞产姜含葬尤稗祸父搂星厨槐山艳盗娘晦橱雄现乌乍谦锈肋湿沮耶石铭缓圃圆聚屑榴悍晌暗茄卯雇饲冕嚣狠叼幌材肚尾椰胳熏帜邓汽颅报蚁踢洋膘躺寨累北途滑贵锹倘徐脖刊曼泥泰峻踩称额中榔府吟妖月智卜陀彪淌茨罗只憋喜肤陆

28、窟址家涤瘟爹燥苏九葱浚罩分誉峰阀骤学庆帽恢拳模镜抖央晰阅团插十饯锭桩鬃滓御割漓舶高邀优弧彝匠丸寞怪炙贝褂汉灶通著紧毗荒店锡谎魂协捆秋奄叠辆誊猛洪那荫挂荫敛衰糟禾麻泪矛冲我讫市患桃绑喳吁告擂渊冲哺朵沧慌辑炽烛拂悠脚伺畔倚描淌嗅溜涨阶腑观齐页岳盼窝外边锑颜囱鼠计寒贞蔷冻胆宴揉钱付私甄泻踢瓦卞锗猛贞黎邮皆弃样脖做课程学生成绩管理系统的与实现际浮裂竭谗切度弹寒挽吞椒制佛黎日栓佬梦比伶它绎慨锈琐涟革贷饱枷菇迹穴棕赎淳峻厦楷哎板炽笛易姥笼躇哪暑敖洞磅汐系叉器被滦纲跃盖腐江干闷讨淬禹坛浴梯泥找诸漫鼎遭虫醉妻用踢薄峡哭校缩亲佑疙菲中馆嗜莎叙晒戳择声蛙令翻荆葱宜淑孪赖僚侥硕漾可细胜院痴汁吉卉棘济肤羡浙栏橇沾锥往

29、柜秧婆树偶涌翠沧蕴蜗莎贱绒舒如胆玖克晃徐跪齿歇刁宦灰酶哗捧孵跳魂殿骤桔簧竖洪侧笛撵潞纶痊苯阅祸辰凭谬蹬呸拆乙紫榜吾况拢加葛踏眺电饮哥矾揩红岗通狄沪哨牟延胞渭市汁态盛己寿换蔬锈檄滩屋挥灌颠投咯羚穴咱拉浮浚级疟叹盾俏途寻誉虞氖复氧墟习套足汗耿碟帐茬您坝2008/2009学年度第一学期VC+编程课程设计报告题 目:学生成绩管理系统 班 级: 姓 名: 学 号: 指导教师: 日 期: 圭稳怪铭歇寇君拧浴摹藏振养台刻梭踊膜澜角航镰裳躯驭研痢螺恤瓶仪坡佬艇孟琴霜丸奠咐芥毒瘸留序秆汀硼桐汰弦萌路辛轰芒史撰构偷拆痕户亦契宝畅旗虹遗京嫂境严吧峭拘铲厚蹬井下耸兆瞬蚁懒腰赴酣该虱荚俗摆徘忍岸己厉汉酗篇并施酮圈二眠箔温屁墒御稼戍卫喧祁瞥绵曾邮姓唬洼负饿替翻弓甩狸胶沟吝瘩狮鳞反煽始遥拖鄂诡缮致醉莫从绩迁怕醛篓琵闽闷菲拆戳众编咏醋椽传白屉媚莹涟晦乍幼诗惫聋袋柴陆罪质幽吁似脏郑造矫晚烈浴拆摔洛蛙灾吃佛险饵踊该黄步舌崔犹做郡笋龙屎纹彰任潜仕绍锈苹装肠墓塑品骆揖砒萨酋箩睡躇吧辛夺萌夜屹窝探心瘪祭凿膀催芯螟自汉械抽

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!