1、 listNode(Inform &); listNode(listNode & listNode *create();/创建链表 listNode *insert(listNode *);/对链表进行插入操作; listNode *del(listNode *,char *);/删除资料中含有char*的节点; void printlistNode(listNode *);/打印链表; listNode(); void search(char *,listNode *);/查找链表中含有char*的学生; listNode *modify(listNode *);/修改private: In
2、form data; static int num; listNode *nextPtr;*Inform.h*class Informfriend ostream &operator(istream & Inform(); Inform(Inform & int operator=(const Inform & int operator=(char *); int operator!=(char *); Inform &operator=(Inform & Inform(); char *number; char *id; char *name; char *sex; achieve ach;
3、 char *phonenumber; char *roomnumber; *achieve.h*cclass achieve friend ostream &output,achieve & friend istream &input,achieve & achieve(); void countaverage(subject *); int operator=(achieve & achieve &operator=(achieve & void instruction(); achieve(); void setnum(int a); int getnum(); subject *TT;
4、 int num; float sum; float average;*subject.h*class subject,subject &,const subject & subject &operator=(const subject & char nameMAX1; float achievement; float xuefen;题目2 学生选修课系统1. 选修课系统学生端完成学生选课、学生情况、选课情况、退出系统等功能的设计与实现。2.选修课系统管理端完成增加学生、增加课程、删除学生、删除课程、填写成绩、更改学分、学生情况、选课情况、保存数据、退出系统等功能的设计与实现。/定义课程str
5、uct course /某个学生所学的课程中的某一个 char cname20; /课程名称 float grade; /课程成绩 course *Next; /指向下一个课程的指针/学生类class student student() root = NULL; const maxcourse = 5; factcourse = 0; void readname(char N ); /读入学生的姓名 void getname(char N); /得到学生的姓名 void wrecourse(char N,float score); /要据课程名写入学生课程的成绩 float average()
6、; /学生课程的平均成绩 void addcourse(char N,float g); /给学生增加一门课 int findcourse(char N); /查找是否已有此课程,如果有返回1,如果没有返回0 int retfactcourse() return factcourse; /得到所学的课程数目 course *retroot() return root; /利用键表将所有的课程保存起来 int retmaxcourse() return 5; /得到最多可学的课程数目 void clrroot() /清零 char sname20; /学生的姓名 int maxcourse; /
7、学生最多可以学五门课程 int factcourse; /学生实际所学的课程数目 course *root; /课程的根结点指针struct studentdb student stu; studentdb *Next;struct studentname char tname20; /学生的名字 float result; /学生所得的该课程分数 studentname *Next;/课程类class subject subject() first = NULL; maxstudent=30; activestudnet=0; float readcredit(); /得到课程的学分 voi
8、d getcredit(float a); /设置学分 float getaverage(); /得到学生的平均成绩 float getresult(char N); /查找某个学生的成绩 void getkname(char N); /读出课程的名称 void setkname(char N); /读入课程的名称 void findstudent(studentdb *P); /根据该课程的名称,寻找选这课程的学生 studentname *retfirst() return first; /返回根结点 int retactivestudent() return activestudnet;
9、 /返回实际学生数 int retmaxstudent() return 30; /返回最多学生数30 void clractivestudnet() activestudnet = 0; /从文件中读出来后将实际学生数清零 int maxstudent; /最多学生数 int activestudnet; /实际学生数 studentname *first; /学生名单 float credit; /该课程的学分 float averagerusult; /该课程的平均成绩 char kname20; /该课程的名称四、课程设计文字资料要求(1) 每个同学必须独立完成自己任务的软件课程设计说
10、明书,字数不少于2000字;(2) 不得少于300行有效代码;(3) 说明书书写规范、语句通顺、图表清晰。(4) 说明书正文前附课程设计任务书,课程设计指导情况表(此内容不在2000字范围中),一律用A4纸打印或使用学校统一的课程设计报告纸;(5) 说明书要求文字打印,统一格式,封面规范,装订成册,一式一份。五、总结报告学生对课程设计的全过程做出系统总结报告(课程设计说明书)。课程设计说明书(正文)应包括的主要内容有:需求分析、系统总框图、UML类图、每个模块的设计分析、列出所有定义的函数及说明、举例说明1、2个比较有特点的算法、存在的问题与不足及对策、使用说明(操作手册)、课程设计的心得和体
11、会等,再报告的最后附上程序源代码。六、考核学生完成课程设计后,采用设计答辩的形式,评定学生设计水平。每位学生必须在规定时间内完成课程设计。指导教师要从以下几个方面加以考察:学生软件开发基础知识掌握的程度、选定的方案及设计是否正确、独立分析问题和解决问题的能力、学生的创新精神、总结报告水平、学习态度(可从平时指导过程中考察)、科学作风、思想表现等。对雷同报告均记为不合格报告,成绩也不合格。教师对每一个学生做出评语,并根据以上几方面给出具体的成绩。答辩时需提交程序源代码文档。(提交的电子文档文件的命名方式为:学号+姓名)七、实间安排1. 13周星期一1、2节在203下达课程指导书,宣布纪律;2.
12、辅导时间:13 15周星期一下午、星期五上午,地点:2号机房。其他时间网上答疑:zhangxiaorong.;3. 报告提交时间:15周星期五下午,地点:参考代码学生学籍管理系统/程序源代码*listNode.h*#ifndef listNode_h#define listNode_h#define LEN sizeof(listNode)#includestdlib.hassert.hstring.hstdio.h#includeInform.h#define MAX2 4class listNode#endif*listNode.cpp*listNode.hint listNode:num
13、=0;listNode:listNode(Inform &da) data=da; nextPtr=new listNodeLEN;listNode(listNode ©) /拷贝构造函数。 data=copy.data; assert(nextPtr!=0); nextPtr=copy.nextPtr;listNode *listNode:create() /从文件f3.txt中读入链表数据; listNode *head=NULL; listNode *p1,*p2; p1=p2=new listNodeLEN; char ch; coutp1-data; num=num+1; i
14、f(num=1) head=p1; else p2-nextPtr=p1; p2=p1; p1=new listNodeLEN; coutch; while(ch=y p2-nextPtr=NULL;t输入学生个数为:numinsertdata; listNode *p0,*p1; p0=new listNodeLEN; assert(p0! p0-data=insertdata; p1=new listNodeLEN; assert(p1! p1=head; head=p0; num+=1;The DATA have been inserted into the list. return h
15、ead;del(listNode *head,char *DELDATA)/删除链表中数据为DELDATA的节点。确定要删除该生的资料吗? if(ch=) if(head=NULL) coutendldata!=DELDATA&nextPtr!=NULL) p2=p1; p1=p1-nextPtr; if(p1-data=DELDATA) if(p1=head) head=p1- else p2-nextPtr=p1-t删除操作成功。 num-=1;t没有找到与DELDATAdata while(p!=NULL);search(char *sea,listNode *head) listNod
16、e *p=new listNodeLEN; listNode *tMAX2; int n=0,j=0; for(int i=0;idata=sea) n+=1; while(j if(n=0)seat找到n=0;j-) coutjmodify(listNode *head)输入要修改的学生的一项资料(姓名,学号,电话号,身份证号或寝室号): char ch20; search(ch,head);t即将删除该生的资料,确定吗?(y/n) char c;cin if(c= head=del(head,ch);t输入修改的学生资料: head=insert(head);listNode() delete nextPtr;#ifndef Inform_h#define Inform_h#include fstream.hachieve.h*Inform.cpp* #includeostream &output
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1