C++课程设计报告6691514Word下载.docx
《C++课程设计报告6691514Word下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告6691514Word下载.docx(56页珍藏版)》请在冰豆网上搜索。
listNode(listNode&
listNode*create();
创建链表
listNode*insert(listNode*);
对链表进行插入操作;
listNode*del(listNode*,char*);
删除资料中含有char*的节点;
voidprintlistNode(listNode*);
打印链表;
~listNode();
voidsearch(char*,listNode*);
查找链表中含有char*的学生;
listNode*modify(listNode*);
修改
private:
Informdata;
staticintnum;
listNode*nextPtr;
};
****************************Inform.();
~achieve();
voidsetnum(inta);
intgetnum();
subject*TT;
intnum;
floatsum;
floataverage;
*******************************subject.;
题目2学生选修课系统
1.选修课系统学生端
完成学生选课、学生情况、选课情况、退出系统等功能的设计与实现。
2.选修课系统管理端
完成增加学生、增加课程、删除学生、删除课程、填写成绩、更改学分、学生情况、选课情况、保存数据、退出系统等功能的设计与实现。
定义课程
structcourse某个学生所学的课程中的某一个
{
charcname[20];
课程名称
floatgrade;
课程成绩
course*Next;
指向下一个课程的指针
学生类
classstudent
student()
{
root=NULL;
constmaxcourse=5;
factcourse=0;
}
voidreadname(charN[]);
读入学生的姓名
voidgetname(charN[]);
得到学生的姓名
voidwrecourse(charN[],floatscore);
要据课程名写入学生课程的成绩
floataverage();
学生课程的平均成绩
voidaddcourse(charN[],floatg);
给学生增加一门课
intfindcourse(charN[]);
查找是否已有此课程,如果有返回1,如果没有返回0
intretfactcourse()
returnfactcourse;
}得到所学的课程数目
course*retroot()
returnroot;
利用键表将所有的课程保存起来
intretmaxcourse()
return5;
得到最多可学的课程数目
voidclrroot()清零
charsname[20];
学生的姓名
intmaxcourse;
学生最多可以学五门课程
intfactcourse;
学生实际所学的课程数目
course*root;
课程的根结点指针
structstudentdb
studentstu;
studentdb*Next;
structstudentname
chartname[20];
学生的名字
floatresult;
学生所得的该课程分数
studentname*Next;
课程类
classsubject
subject()
first=NULL;
maxstudent=30;
activestudnet=0;
floatreadcredit();
得到课程的学分
voidgetcredit(floata);
设置学分
floatgetaverage();
得到学生的平均成绩
floatgetresult(charN[]);
查找某个学生的成绩
voidgetkname(charN[]);
读出课程的名称
voidsetkname(charN[]);
读入课程的名称
voidfindstudent(studentdb*P);
根据该课程的名称,寻找选这课程的学生
studentname*retfirst()
returnfirst;
返回根结点
intretactivestudent()
returnactivestudnet;
返回实际学生数
intretmaxstudent()
return30;
返回最多学生数30
voidclractivestudnet()
activestudnet=0;
从文件中读出来后将实际学生数清零
intmaxstudent;
最多学生数
intactivestudnet;
实际学生数
studentname*first;
学生名单
floatcredit;
该课程的学分
floataveragerusult;
该课程的平均成绩
charkname[20];
该课程的名称
四、课程设计文字资料要求
(1)每个同学必须独立完成自己任务的软件课程设计说明书,字数不少于2000字;
(2)不得少于300行有效代码;
(3)说明书书写规范、语句通顺、图表清晰。
(4)说明书正文前附《课程设计任务书》,《课程设计指导情况表》(此内容不在2000字范围中),一律用A4纸打印或使用学校统一的课程设计报告纸;
(5)说明书要求文字打印,统一格式,封面规范,装订成册,一式一份。
五、总结报告
学生对课程设计的全过程做出系统总结报告(《课程设计说明书》)。
课程设计说明书(正文)应包括的主要内容有:
需求分析、系统总框图、UML类图、每个模块的设计分析、列出所有定义的函数及说明、举例说明1、2个比较有特点的算法、存在的问题与不足及对策、使用说明(操作手册)、课程设计的心得和体会等,再报告的最后附上程序源代码。
六、考核
学生完成课程设计后,采用设计答辩的形式,评定学生设计水平。
每位学生必须在规定时间内完成课程设计。
指导教师要从以下几个方面加以考察:
学生软件开发基础知识掌握的程度、选定的方案及设计是否正确、独立分析问题和解决问题的能力、学生的创新精神、总结报告水平、学习态度(可从平时指导过程中考察)、科学作风、思想表现等。
对雷同报告均记为不合格报告,成绩也不合格。
教师对每一个学生做出评语,并根据以上几方面给出具体的成绩。
答辩时需提交程序源代码文档。
(提交的电子文档文件的命名方式为:
学号+姓名)
七、实间安排
1.13周星期一1、2节在
203下达课程指导书,宣布纪律;
2.辅导时间:
13~15周星期一下午、星期五上午,地点:
2号机房。
其他时间网上答疑:
zhangxiaorong.;
3.报告提交时间:
15周星期五下午,地点:
参考代码
学生学籍管理系统
程序源代码
*****************************listNode.>
>
p1->
data;
num=num+1;
if(num==1)
):
"
;
cin>
ch;
}while(ch=='
y'
p2->
nextPtr=NULL;
cout<
<
"
\t输入学生个数为:
num<
endl;
return(>
insertdata;
listNode*p0,*p1;
p0=newlistNode[LEN];
assert(p0!
=0);
p0->
data=insertdata;
p1=newlistNode[LEN];
assert(p1!
p1=insertedintothelist."
return):
charch;
if(ch=='
if(=0,j=0;
for(inti=0;
i<
num;
i++)
if(+=1;
while(j<
MAX2)
{
t[j]===0)
endl<
\t没有找到与"
sea<
相匹配的资料。
elseif(n==1)
找到一个学生资料,要输出吗?
(yn)."
charc;
cin>
c;
if(c=='
{
cout<
\t该学生学生资料是:
(*t)->
data<
}
else
\t找到"
n<
个学生."
要输出这些学生资料(yn)."
if((c=getchar())!
='
exit
(2);
else
for(intj=n-1;
j>
=0;
j--)
cout<
j<
(t[j])->
}
listNode*listNode:
:
modify(listNode*>
search(ch,)"
charc;
cin>
if(c=='
>
(16)<
t.name<
\t\t\t"
cout<
t.sex<
output<
t.number<
chara;
\t\t要输出详细信息吗?
(yn)"
a;
if(a=='
********************详细资料********************"
身份证号电话号码寝室号"
output<
setprecision(20)<
t.id<
t.phonenumber<
t.roomnumber<
if((t.ach).getnum()==0)
\t没有输入成绩信息。
(t.ach).instruction();
output<
t.ach;
}
returnoutput;
istream&
operator>
(istream&
input,Inform&
t)
姓名:
input>
t.name;
学号:
t.number;
身份证号:
t.id;
性别:
t.sex;
电话号码:
t.phonenumber;
寝室号:
t.roomnumber;
\t\t要继续输入成绩情况吗?
(yn)"
\t&
&
成绩情况&
\t输入该生学习的科目数目:
intch;
(t.ach).setnum(ch);
input>
(t.ach).setnum(0);
returninput;
Inform:
Inform()
id=newchar[19];
number=newchar[12];
name=newchar[10];
sex=newchar[4];
phonenumber=newchar[8];
roomnumber=newchar[4];
Inform(Inform&
p)
assert(id!
strcpy(id,p.id);
assert(number!
strcpy(number,p.number);
assert(name!
strcpy(name,p.name);
assert(sex!
strcpy(sex,p.sex);
assert(phonenumber!
strcpy(phonenumber,p.phonenumber);
assert(roomnumber!
strcpy(roomnumber,p.roomnumber);
ach=p.ach;
intInform:
operator==(constInform&
if((strcmp(number,t.number)==0)||(strcmp(name,t.name)==0)||(strcmp(id,t.id)==0)
||strcmp(phonenumber,t.phonenumber)||(strcmp(roomnumber,t.roomnumber)==0))
return1;
return0;
operator==(char*s)
if((strcmp(number,s)==0)||(strcmp(name,s)==0)||(strcmp(id,s)==0)||
(strcmp(roomnumber,s)==0)||(strcmp(phonenumber,s)==0))
operator!
=(char*t)
if((strcmp(number,t)==0)||(strcmp(name,t)==0)||(strcmp(id,t)==0)
||(strcmp(phonenumber,t)==0)||(strcmp(roomnumber,t)==0))
}
Inform&
operator=(Inform&
a)
ach=a.ach;
strcpy(id,a.id);
strcpy(name,a.name);
strcpy(number,a.number);
strcpy(sex,a.sex);
strcpy(phonenumber,a.phonenumber);
strcpy(roomnumber,a.roomnumber);
return*this;
~Inform()
delete[]number;
delete[]id;
delete[]name;
delete[]sex;
delete[]phonenumber;
delete[]roomnumber;
************************achieve.();
#endif
*****************************achieve.cpp*******************************
#include"
achieve.num;
voidachieve:
countaverage(subject*t)
{
sum=average=0;
floattemp=0;
sum+=(t+i)->
xuefen;
temp+=((t+i)->
achievement)*((t+i)->
xuefen);
average=tempsum;
ostream&
operator<
(ostream&
output,achieve&
t.countaverage(t.TT);
t.num;
t.TT[i];
\t总学分:
t.sum<
\t该生的加权平均分是:
setprecision(4)<
t.average<
input,achieve&
intachieve:
operator==(achieve&
if(average==t.average&
sum==t.sum&
TT==t.TT)
achieve&
achieve:
operator=(achieve&
average=t.average;
sum=t.sum;
MAX1;
TT[i]=t.TT[i];
instruction()
********************成绩资料********************"
科目\t\t成绩\t\t学分"
~achieve()
delete[]TT;
***************************subject.cpp***************************************
subject.;
output,constsubject&
T)
setw(17)<
setiosflags(ios:
left)<
T.name<
T.achievement<
\t\t"
T.xuefen<
subject&
subject:
operator=(constsubject&
b)
strcpy(name,b.name);
achievement=b.achievement;
xuefen=b.xuefen;
**********************************list.cpp*******************************************
#include<
iostream.()
charpass[5];
do{
clrscr();
welcome();
pass;
if(strcmp(pass,"
E"
)==0)
exit
(1);
}while(strcmp(pass,passwords)!
staticlistNode*>
while
(1)