1、C+实训报告学生成绩管理系统 课程实训报告课程名称:CC+语言程序实训题目:学生成绩管理系统学生姓名何莉学 号0901830专 业:计算机应用技术班 级09软件一班指导教师:蔡茜职 称助教部 门:计算机与电子工程系起止日期:2010年6月28日 至2010年7月5日教务处 制一、系统简介设计一个基于结构体数组的学生成绩管理系统,能实现对学生成绩信息进行录入、修改、删除、查询、显示总分和输出等基本操作。二、需求分析成绩管理系统应实现以下功能:1、能录入学生的基本信息,包括学号、姓名、性别和语文、数学、英语三门课程的成绩。2、能根据输入的学号和姓名分别查找学生,进行信息的修改。3、能根据输入的学号
2、和姓名从程序中删除学生的记录。4、实现查询功能,能根据输入的学号或姓名在屏幕上显示相应的学生信息。5、能在屏幕上以列表的方式输出所有学生的信息。6、能将学生的信息永久的保存起来。三、概要设计1、系统功能结构图根据期末课程设计要求,本组统划分成七个主功能模块:录入学生信息及成绩模块、修改学生信息模块、删除学生信息模块、查询信息模块、输出模块和系统退出和保存模块。系统功能结构图如下:2、重要数据的数据结构设计学生成绩管理的记录项用结构体book 表示,包括6个属性name、number、post、x、y、z,分别代表学生的姓名、学号、性别和语文、数学、英语三门课程成绩;class book str
3、ing name;/学生姓名 string number;/学生学号 string post;/学生性别 float x;/语文成绩 float y;/数学成绩 float z;/英语成绩;3、函数设计学生成绩管理系统程序采用了结构化程序设计的思想,由1个.h头文件和2个.c源文件组成。程序中除了主函数外,共设计了以下7个函数,分别包含在2个.c源文件中。以下是这些函数的函数原型及功能设计。(1) char inter_face();函数功能:在屏幕上输出系统的主菜单。(2) void add_person();函数功能: 录入一条学生记录到记录数组的末尾。(3) void select();
4、函数功能: 通过输入学号或姓名查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,否则输出没有找到相关记录。(4) void del_person();函数功能: 通过输入学号和姓名查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,用户确认删除后调用del_person() 函数将其删除,否则输出没有找到相关记录。(5) void alter();函数功能: 通过输入学号和姓名查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,用户确认修改后调用alter()函数将其修改,否则输出没有找到相关记录。(6) void show_all();函数功能: 在屏幕上以列表方式显示所
5、有学生的信息。(7) void Quit(void);函数功能: 退出菜单系统,并调用exit(0) 系统函数结束程序运行。(8) void save_new();函数功能: 将之前所有输入合法的数据保存起来。以便下次调用。4、小组成员分工李川inter_face()龚雪梅select()吴玉丹show_all()曹凤del_person()何莉alter()王军add_person()张金save_new()四、详细设计1、修改学生信息功能模块函数alter()设计2、运行效果图: 五、调试分析本系统在VC6下编译调试通过,可顺利运行,各项功能达到设计要求。本系统程序由一个.h头文件和2个.
6、c源文件构成。系统调试主要在VC6下进行,采用分模块调试的方法进行编译,即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并生成可执行文件 BOOK.exe。 六、用户手册本系统是WIN32控制台程序,可在WINDOW和DOS环境下运行,执行文件名称:BOOK.exe。运行程序后,首先进入主功能菜单。在主功能菜单中输入相应的数字可执行相应的程序功能,包括录入学生信息、修改学生信息、删除学生信息和输出所有学生信息,输入5可进行查询子菜单,可进行按学号查询和按姓名查询学生信息。在主功能菜单按6可结束本系统的运行并自动关闭运行窗口。七、附录 void book:alter() ofstre
7、am outData(temp.txt, ios:out);ifstream inData(pbook.txt, ios:in); /if (!outData | !inData) cout endl 对不起,找不到文件! endl; system(pause); return; string sign; cout endl sign;string str1; bool flag = true;string str; while(inDatanamenumber) inDatapostxyz; if (sign=name) | (sign=number) cout endl 你想联系的人: e
8、ndl endl; cout setiosflags(ios:left)setw(10)namesetw(10)numbersetw(10)postsetw(10)xsetw(10)ysetw(10)zsetw(10)endl; cout endl 请根据下面提示修改信息 : endl1:姓名2:学号 3:性别 4:语文 5:数学 6:外语 i; switch(i) case 1:cout name; fflush(stdin); break; case 2:cout number; fflush(stdin);break; case 3:cout post; fflush(stdin);br
9、eak; case 4:cout x; fflush(stdin);break; case 5:cout y; fflush(stdin);break; case 6:cout z; fflush(stdin);break; case 7: cout name; fflush(stdin); cout number; fflush(stdin); cout post; fflush(stdin); cout x; fflush(stdin); cout y; fflush(stdin); cout z; fflush(stdin); save_new(); flag = false; brea
10、k; outDatasetiosflags(ios:left) setw(17) name numberstr endl; if (flag) cout endl 对不起,联系人中没有你要查找的人员! endl endl; else while (getline(inData, str) outData str endl; outData.close(); inData.close(); ofstream out(pbook.txt, ios:out); ifstream in(temp.txt, ios:in); if (!out | !in) cout endl 对不起不能打开文件! en
11、dl endl; system(pause); return; while (getline(in, str) out str endl; out.close(); in.close(); cout endl 这个人的信息已经在系统中修改! endl endl; system(pause); 八、实训心得体会通过这次实训我懂得了利用集体的力量完成一件事情,在实训过程中我遇到了很多的困难,程序反复反复的出现错误,让自己在过程中寸步难行,有时自己都有一种想要放弃的感觉,但是在老师和同组同学的帮助之下,困难解决了,而且还让我学到很多知识,还复习了很多以前的知识,但是这次实训同时也让我更加明白的认识到我们这学期学习的知识的不足,我们对这门课程的不了解,没有完全的去了解这门课程,对程序设计的技巧方面很欠缺,所以我觉得以后还要在这门课程上面多下心思。重庆工商职业学院课程实训成绩评定指导教师评语:实训成绩:指导教师签字: 年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1