《VC++课程设计》报告
学生成绩管理系统
寸金学院2015-2016第1学期
学号: 姓名: 班级: 时间:
-----------------------------------------------------------------------------------------
一、设计要求:
题目:学生成绩管理系统
内容:通过输入学生的信息,实现对信息的显示,查找,修改,删除,求和排序等功能。在主函数建立简单的菜单选择,来实现这些功能。
二、开发环境:C++的集成开发工具软件VC++6.0
三、系统功能
一、系统功能划分:
⑴信息读入内存 通过两种方式将信息读入,键盘输入和文件读入。键盘输入操作较为繁琐,但灵活性强;文件读入操作简单,但灵活性较差;
⑵信息的操作 通过操作实现对信息的显示,查找,修改,删除,求和排序,其中查找,修改,删除,三个功能需要利用学号进行操作,所以学号不可重复。
二、系统具体功能分析:
1、登录(密码)
2:学生信息(用键盘)输入
根据提示判断循环来实现对学生信息的读入内存
3:显示所有学生信息
对已经读入信息通过学号,输出信息。
4:显示所有学生成绩求平均后的信息
5:排序(按总分)并显示带有名次的成绩单
利用选择排序法,对求和数据进行排序,交换求和数据对应的该节点的其它信息同时对已经排好序的信息定名次,再将名次存放到结点中,从而实现对信息的排序。
7:学生信息修改(按学号)
查找对应学号的结点,然后根据提示输入该同学的新信息,新信息去覆盖原来信息,实现学生信息修改的功能。
6:查找学生信息(按学号)
然后输出对应的信息。
//8:插入新学生信息
9:统计学生信息
10:形成管理后成绩文件
第二篇:20xx年vc++课程设计报告
南京理工大学VC++课程设计报告
课 程:VC++课程设计
系 别:计算机学院
班 级:
学 号:
姓 名:
选题1名称:
选题1难易级别:
选题2名称:
选题2难易级别:
自报成绩
起止时间:
指导教师:
日期: 年 月 日
目 录
一、 课题目标
1.1 程序功能简介
1.2 课程设计要求
1.3 评定难易级别
二、 具体实现
2.1 程序总体方案
2.1.1开发平台
2.1.2程序结构或流程图
2.2 所做改进
2.2.1改进一
2.2.1.1 改进方案
2.2.1.2 具体实现
2.2.2改进二
2.2.2.1 改进方案
2.2.2.2 具体实现
…
2.2.n 改进N
2.2.n.1 改进方案
2.2.n.2 具体实现
三、 调试报告
(在设计和实现过程所遇到的问题和解决,请如实填写)…
四、 总体小结
(在整个设计过程中的心得体会)
五、 分工介绍
(是独立完成还是合作完成,若为合作完成,说明合作者以及之间的具体分工)…
2
例:
一、课题目标
1.1 程序功能简介
该程序是TICTACTOE游戏,棋盘为3*3,3个棋子连起来即为赢。输入参数时,若输入的数字超出边界或在已有棋子的地方再输入,则提示出错,要求重新输入。
1.2 课程设计要求
(1)将所需的数据和相应的函数封装在类中,改写程序使之结构化。
(2)将棋盘扩充成4*4的。
(3)统计输赢结果并打印输出。
(4)选做:使游戏更加生动。(输赢条件相同)
1.3 评定难易级别
B级
二、具体实现
2.1 程序总体方案
2.1.1开发平台
操作系统:Windows XP
开发工具:VC++6.0
2.1.2程序结构或流程图
(1)主函数的流程图:
3
主函数流程结构图
(3)子函数(circuit())的流程图:
(2)子函数(huiqi(int& x,int& y))的流程图:
4
2.2 所做改进
2.2.1改进一
2.2.1.1 改进方案
把程序改成类:在程序中定义了TICTACTOE类,里面封装了棋盘、棋子类别和输赢次数等成员数据,其中把输赢盘数定义为私有成员。利用这个类实现了数据的封装和隐藏,它将不同的类型的数据和对这些数据相关的操作封装在一起的集合体,使程序结构化。
2.2.1.2 具体实现
class TICTACTOE{
char choice;
int ROW; //行数
int COLUMN; //列数
int FirstPlayer; //玩家获胜的盘数
int SecondPlayer; //计算机获胜的盘数
int Draws; //平局的盘数
char m[30];
public:
int circuit(); //产生流程的函数
void shuchu(); //输出函数
void wait(int); //时间等待函数
5
}; void huiqi(int&, int&); //悔棋函数 void PrintBoard(); //显示棋盘和棋盘上棋子的函数 void PrintInfo(); //介绍游戏规则的函数 void PrintStats(int, int, int); //显示总的战况的函数 void IfError(int&, int&); //检验棋子是否摆放错误的函数 void ChoiceOfChar(char&); //选择是否再玩的函数 void PromptTurnO(int&, int&); //转换到玩家摆放棋子的函数 void PromptTurnX(int&, int&); //转换到计算机摆放棋子的函数 int random(long hi,long lo); //计算机摆放棋子的函数 int Whoiswinner(); //判断谁获胜的函数
2.2.2改进二
2.2.2.1 改进方案
将棋盘扩充为4*4:原来程序中的棋盘是3*3 的,现在只要在原来代码的基础上增加部分相同的语句就可以把这个要求实现了。但是现在这种写法仍觉得比较繁琐,若需要任意的棋盘,就必须将其改写成for循环,但是课程设计要求只要4*4的棋盘,改写就此免了。
2.2.2.2 具体实现
void TICTACTOE::PrintBoard() //显示棋盘和棋子的函数 {
cout<<endl;
cout<<" 1 2 3 4 " << endl;
cout<<"1 " << board[0][0]<<" | "<<board[0][1]<<" | "<<board[0][2]<<" | "<<board[0][3]<<endl;
cout<<" ---|---|---|---" << endl;;
cout<<"2 " << board[1][0]<<" | "<<board[1][1]<<" | "<<board[1][2]<<" | "<<board[1][3]<<endl;
cout<<" ---|---|---|---" << endl;
cout<<"3 " << board[2][0]<<" | "<<board[2][1]<<" | "<<board[2][2]<<" | "<<board[2][3]<<endl;
cout<<" ---|---|---|---" << endl;
cout<<"4 " << board[3][0]<<" | "<<board[3][1]<<" | "<<board[3][2]<<" | "<<board[3][3]<<endl;
cout<<endl;
cout<<endl;
}
2.2.3改进三
2.2.3.1 改进方案
实现人机对抗:利用一个随机函数,主要是在程序执行过程中产生一个随机数,并且返回一个随机数,实现计算机能够自行摆放棋子,完成简单的随机对抗。若想调用此函数,必 6
须要包含头文件stdlib.h,否则程序会报错。
2.2.3.2 具体实现
int TICTACTOE::random(long hi,long lo) {
int ran;
ran=rand()%(hi-(lo-1))+lo; return(ran); }
………
三、调试报告
四、总体小结
(在整个设计过程中的心得体会)
五、分工介绍
独立完成。
7