课程设计选题管理系统报告Word文档格式.docx
《课程设计选题管理系统报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计选题管理系统报告Word文档格式.docx(28页珍藏版)》请在冰点文库上搜索。
(2)功能要求
1添加功能:
程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。
添加记录时,要求学号和编号要唯一。
如果添加了重复记录,则提示数据添加重复并取消添加。
2查询功能:
可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
3显示功能:
可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。
4编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意学号的唯
一性。
5删除功能:
主要实现对已添加的学生和课程设计题目记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!
”并返回操作。
6统计功能:
能根据多种参数进行统计。
能按课程设计题目名称统计出学生选择该题目的人员的信息。
7保存功能:
可将当前系统中各类记录存入文件中,存入方式任意。
8读取功能:
可将保存在文件中的信息读入到当前系统中,供用户进行使用。
设计方案
1、总体设计
我们设计一个程序对学生课程设计选题信息进行保存,对学生的选题信息进行可执行多种操作,该程序包括以下功能模块:
1)学生信息添加模块:
能够输
入学生基本信息并保存到文件中。
2)查询模块:
显示所有符合要求的课程设计信息。
3)编辑模块:
可对学生信息进行修改。
4)删除模块:
可删除相应的学生信息。
5)统计模块:
能根据多种参数进行统计。
6)查看模块:
显示所有课程设计选题的信息。
7)退出系统。
为了完善系统,我们还添加了一个登录界面。
2、系统设计
1)类设计
定义一个学生类Student,类中包括学号stuid,姓名stuname,性别sex,年龄age,班级clas,专业specialty,及所选课程的课程编号couid,课程名称couname,关键词keyword,实现技术technology;
定义一个管理类Guanli,其成员函数包括向文件输入函数voidwrite(intn);
从文件读取函数,intread();
添加学生信息函数voidadd(),查询信息函数voidsearch(),按学号查询函数voidsearchsid(),按姓名查询函数voidsearchsname(,按题目编号查询函数voidsearchcid(),按题目名称查询函数voidsearchcname();
修改信息函数voidalter();
删除信息函数voiddel();
统计信息函数voidtotal();
显示函数voiddisplay()以及一个数据成员Studentstu[50]。
2)函数设计
voidwrite(intn),向文件中写入数据,打开文本文档,并将数据输入到文本文档中;
intread(),向文件中写入数据从文件中读数据,打开文本文档,并将文本文档中的数据输出;
voidadd(),添加学生信息;
voidsearch()查询信息(可根据学生的学号、姓名、所选课程编号、课程名称进行信息查询);
voidalter(),修改学生信息;
voiddel(),删除学生信息,根据输入的学生学号通过调用函数实现;
voidtotal(),统计学生信息(根据学生所选课程名称进行统计);
voiddisplay。
,显示函数用来显示所有学生信息;
intmain()主函数,显示主菜单,调用各个函数实现所有功能。
3)系统流程图
课程设计学生选课系统设计结构图:
进入功能界面后,可以进行多项功能选
择,如添加、查询、显示、修改、删除、统计,将数据写入文件以及从文件读取数据等;
而查询功能又可以分为按学号、姓名、题目编号、题目名称等方式进行查询。
如下图所示。
4)界面设计
主界面是“欢迎使用课程设计选课系统”,下面是所要使用的功能:
1.添加新的纪录
2.查询记录信息
3•修改学生信息
4.删除学生信息
5.统计所有记录
6.显示所有记录
0.退出系统
其中,查询记录又可以弹出一个界面分别有以下几个功能:
1.根据学号查询
2.根据姓名查询
3.根据编号查询
4.根据题目名称查询
每实现一个功能,重新弹出主界面,进行下一个的功能选择
3、系统实现
1)类实现
classStudent
{
public:
intstuid;
charstuname[10];
charsex[2];
intage;
charclas[10];
charspecialty[10];
intcouid;
charcouname[10];
charkeyword[20];
chartechnology[30];
}stu[50];
classGuanli
private:
Studentstu[50];
voidadd();
voidsearch();
voidsearchsid();
voidsearchsname();
voidsearchcid();
voidsearchcname();
voidalter();
//学号
//姓名
//性别
//年龄
//班级
//专业
//题目编号
//题目名称
//关键词
//实现技术
//定义对象
//添加学生信息
//查询信息
//按学号查询信息
//按名字查询信息
//按题目编号查询信息
//按题目名称查询信息
//修改信息
//删除信息
//统计信息
voiddel();
voidtotal();
voiddisplay();
voidwrite(intn);
intread();
//显示信息
//向文件中写入数据
//从文件中读数据
};
2)函数实现
voidGuanli:
:
write(intn)
fstreammyfile;
myfile.open("
student.txt"
ios:
out|ios:
binary);
if(!
myfile)
cout«
"
该文件不能打开!
<
endl;
abort();
}
intcount=n;
myfile<
count<
endl<
for(inti=0;
i<
=count;
i++)
stu[i].stuid<
stu[i].stuname<
stu[i].sex<
stu[i].age<
"
stu[i].clas<
stu[i].specialty<
stu[i].couid<
stu[i].couname<
stu[i].keyword<
stu[i].technology<
myfile.close();
intGuanli:
read()
in|ios:
intcount;
myfile.seekg(0);
myfile>
>
count;
stu[i].stuid>
stu[i].stuname>
stu[i].sex>
stu[i].age>
stu[i].clas>
stu[i].specialty>
stu[i].couid>
stu[i].couname>
stu[i].keyword>
stu[i].technology;
cout<
}myfile.close();
returncount;
add()
intn=read();
inti=0;
charsign;
coutvvendlvv'
请输入增加的学生的相关信息:
endl;
while(sign!
='
N'
){
loop:
coutvv"
学号:
;
cin>
stu[i].stuid;
cout<
intc=0;
while(c<
i){
c++;
if(stu[i].stuid==stu[i-c].stuid){
你输入的学号已经存在!
请重新输入"
gotoloop;
coutvv"
姓名:
cin>
stu[i].stuname;
coutvvendl;
性别:
stu[i].sex;
coutvv'
年龄:
stu[i].age;
班级:
stu[i].clas;
专业:
stu[i].specialty;
题目编号:
stu[i].couid;
cout«
题目名称:
;
stu[i].couname;
endl;
关键词:
stu[i].keyword;
cout<
实现技术:
提示:
是否继续写入学生信息?
(Y/N)"
sign;
//输入判断i++;
}write(i);
search()
**
(1)根据学号查询**"
**
(2)根据姓名查询**"
**(3)根据编号查询**"
**(4)根据名称查询**"
intc;
Guanlig;
请输入选择:
c;
switch(c)
{case1:
g.searchsid();
break;
case2:
g.searchsname();
case3:
g.searchcid();
case4:
g.searchcname();
default:
输入错误,请重新输入!
g.write(n);
searchsid()
ints;
endlvv'
查找学生信息:
请输入需要查找学生的学号:
s;
while((stu[i].stuid-s)!
=0&
&
n)i++;
//查找判断if(i==n)
vvendl;
对不起,无法找到该学生的信息!
else
******************************、'
学号:
vvstu[i].stuid<
vendl;
stu[i].stuname<
vvstu[i].sexvvendl;
vvstu[i].agevvendl;
coutvv'
vvstu[i].clasvvendl;
vvstu[i].specialtyvvendl;
题目编号:
vvstu[i].couidvvendl;
题目名称:
vvstu[i].counamevvendl;
关键词:
vvstu[i].keywordvvendl;
实现技术:
vvstu[i].technologyvvendl;
searchsname()
chara[10];
请输入需要查找学生的姓名:
vvendl;
a;
ivn;
if(strcmp(stu[i].stuname,a)==0)
vvstu[i].stuidvvendl;
vvstu[i].stunamevvendl;
年龄:
stu[i].age«
endl;
stu[i].specialtyvvendl;
v<
vendl;
stu[i].technologyvvendl;
searchcid()
intb;
请输入需要查找的题目编号:
b;
while((stu[i].couid-b)!
ivn)i++;
//查找判断
if(i==n)
对不起,无法找到该信息!
vvstu[i].stunamevvendl;
vvstu[i].sexvvendl;
vvstu[i].agevvendl;
班级:
searchcname()
charc[10];
请输入需要查找的题目名称:
if(strcmp(stu[i].couname,c)==0)
stu[i].stuname<
vendl;
alter()
coutvvendlvv'
修改学生信息:
请输入需要修改学生的学号:
对不起,无该学生的信息!
!
//输入失败信息
该学生的信息:
学号"
vvstu[i].stuidvv'
\n'
vv"
姓名"
vvstu[i].stunamevv'
性别"
vvstu[i].sexvv'
年龄"
vvstu[i].agevv'
班级"
vv
stu[i].clasvv'
专业"
vvstu[i].specialtyvv'
题目编号"
vvstu[i].couidvv'
题目名称"
vvstu[i].counamevv'
关键词"
vvstu[i].keywordvv'
实现技术"
vvstu[i].technologyvv'
请重新输入该学生的信息"
stu[i].stuid;
stu[i].stuname;
stu[i].clas;
”专业:
stu[i].specialty;
stu[i].keyword;
charc;
是否保存数据?
(y/n)"
«
if(c='
y'
)
修改成功!
write(n);
del()
inti=0,j;
删除学生信息:
请输入需要删除学生的学号:
记录为空!
//返回失败信息
for(j=i;
j<
n-1;
j++)//删除操作
stu[j].stuid=stu[j+1].stuid;
strcpy(stu[j].stuname,stu[j+1].stuname);
strcpy(stu[j].sex,stu[j+1].sex);
stu[j].age=stu[j+1].age;
strcpy(stu[j].clas,stu[j+1].clas);
strcpy(stu[j].specialty,stu[j+1].specialty);
stu[j].couid=stu[j+1].couid;
strcpy(stu[j].couname,stu[j+1].couname);
strcpy(stu[j].keyword,stu[j+1].keyword);
strcpy(stu[j].technology,stu[j+1].technology);
已成功删除!
//返回成功信息
你要删除的信息如下:
stu[i].stuname«
'
write(n-1);
total()
charc[