《程序设计语言(C++)》课程设计.doc
《《程序设计语言(C++)》课程设计.doc》由会员分享,可在线阅读,更多相关《《程序设计语言(C++)》课程设计.doc(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录一、设计目的.3二、环境配置要求:.3三、设计题目.3题目 1 学生学籍管理系统.3题目 2 学生选修课系统.6四、课程设计文字资料要求.9五、总结报告.9六、考核.9七、实间安排.10附录:参考代码.11学生学籍管理系统.11选修课系统.26程序设计语言(C+) 课程设计一、设计目的一、设计目的1、进一步掌握利用 C+进行类的定义和操作方法; 2、进一步掌握类的继承和派生方法; 3、进一步理解虚函数和多态; 4、综合利用上述知识,学习设计并编写面向对象的 C+简单应用程序; 5、培养学生团结协作的能力。二、环境配置要求:二、环境配置要求:硬件配置硬件配置:586 以上 PC 兼容机或品牌
2、机,配有彩色显示器、鼠标、键盘,内存不小于64MB,硬盘自由空间不少于 200MB。推荐配置推荐配置为内存 128MB 或 256MB(或以上) ,硬盘自由空间 500MB 以上。操作系统操作系统:Windows2000/NT/Xp、Visual C+集成开发环境。三、设计题目三、设计题目题目 1 学生学籍管理系统(一)(一) 、系统的主要功能、系统的主要功能 1. 添加系统将提示用户输入新添加的职员的信息,插入在链表中。2. 删除首先由用户输入要删除的学生的学号,然后调用删除函数,删除该名学生的资料。3. 查找首先由用户输入要查找的学生的学号,然后系统用查找函数查找,然后系统就调用输出函数,
3、输出所查找的学生资料。4. 修改首先由用户输入要修改的学生的学号,然后系统用修改函数查找,显示该名学生的资料,然后系统提示用户输入需要修改的项目和新的资料。5. 其他功能在上述功能的基础上进行进一步完善。(二)(二) 、系统总框架图、系统总框架图主要提示的 菜单界面开 始 界 面查找 资 料修改 资 料删除 资 料输出 资料插入 资 料(三)(三) 、系统数据结构定义、系统数据结构定义 class listNode/这是数据节点! public: listNode() listNode(Inform listNode(listNode listNode *create();/创建链表 list
4、Node *insert(listNode *);/对链表进行插入操作; listNode *del(listNode *,char *);/删除资料中含有 char*的节点; void printlistNode(listNode *);/打印链表; listNode(); void search(char *,listNode *);/查找链表中含有 char*的学生; listNode *modify(listNode *);/修改 private: Inform data; static int num; listNode *nextPtr; ;*Inform.h*class Info
5、rm friend ostream public: Inform(); Inform(Inform int operator=(const Inform int operator=(char *); int operator!=(char *); Inform Inform();private: char *number; char *id; char *name; char *sex; achieve ach; char *phonenumber; char *roomnumber;*achieve.h*cclass achieve friend ostream public: achiev
6、e(); void countaverage(subject *); int operator=(achieve achieve void instruction(); achieve(); void setnum(int a);int getnum(); subject *TT; private: int num; float sum; float average;*subject.h*class subject friendistream friend ostream listNode(listNode listNode *create(); listNode *insert(listNo
7、de *);/对链表进行插入操作; listNode *del(listNode *,char *);/删除资料中含有 char*的节点; void printlistNode(listNode *);/打印链表; listNode(); void search(char *,listNode *);/查找链表中含有 char*的学生; listNode *modify(listNode *); private: Inform data; static int num; listNode *nextPtr; ; #endif*listNode.cpp*#include“listNode.h“i
8、nt listNode:num=0; listNode:listNode(Inform nextPtr=new listNodeLEN; listNode:listNode(listNode nextPtr=new listNodeLEN; 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=
9、num+1; if(num=1) head=p1; else p2-nextPtr=p1; p2=p1; p1=new listNodeLEN; coutch; while(ch=y);p2-nextPtr=NULL;coutinsertdata; listNode *p0,*p1; p0=new listNodeLEN; assert(p0!=0); p0-data=insertdata; p0-nextPtr=NULL; p1=new listNodeLEN; assert(p1!=0); p1=head; head=p0; p0-nextPtr=p1;num+=1; coutch; if
10、(ch=y) if(head=NULL) coutdata!=DELDATA p1=p1-nextPtr; if(p1-data=DELDATA) if(p1=head) head=p1-nextPtr;else p2-nextPtr=p1-nextPtr;coutdatanextPtr; while(p!=NULL); void listNode:search(char *sea,listNode *head) listNode *p=new listNodeLEN; listNode *tMAX2; int n=0,j=0; for(int i=0;idata=sea) n+=1; whi
11、le(jnextPtr; if(n=0) coutc; if(c=y) coutdata=0;j-) coutdatach; search(ch,head); coutc; if(c=y) head=del(head,ch); coutinsertdata; head=insert(head); return head; else return head; listNode:listNode() delete nextPtr; *Inform.h*#ifndef Inform_h #define Inform_h #include #include #include #include #inc
12、lude #include #include #include“achieve.h“class Inform friend ostream public: Inform(); Inform(Inform int operator=(const Inform int operator=(char *); int operator!=(char *); Inform Inform(); private: char *number; char *id; char *name; char *sex;achieve ach; char *phonenumber; char *roomnumber; #e
13、ndif*Inform.cpp*#include #include“Inform.h“ostream if(a=y) cout(istream coutt.number; coutt.id; coutt.sex; coutt.phonenumber; coutt.roomnumber; couta; if(a=y) coutch; (t.ach).setnum(ch); inputt.ach; else (t.ach).setnum(0); return input; Inform:Inform() id=new char19; number=new char12; name=new char
14、10; sex=new char4; phonenumber=new char8; roomnumber=new char4; Inform:Inform(Inform assert(id!=0); strcpy(id,p.id); number=new char12; assert(number!=0); strcpy(number,p.number);name=new char10; assert(name!=0); strcpy(name,p.name); sex=new char4; assert(sex!=0); strcpy(sex,p.sex); phonenumber=new
15、char8; assert(phonenumber!=0); strcpy(phonenumber,p.phonenumber); roomnumber=new char4; assert(roomnumber!=0); strcpy(roomnumber,p.roomnumber); ach=p.ach; int Inform:operator=(const Inform else return 0; int Inform:operator=(char *s) if( (strcmp(number,s)=0)|(strcmp(name,s)=0)|(strcmp(id,s)=0)|(strc
16、mp(roomnumber,s)=0)|(strcmp(phonenumber,s)=0) return 1; else return 0; int Inform:operator!=(char *t) if( (strcmp(number,t)=0)|(strcmp(name,t)=0)|(strcmp(id,t)=0)|(strcmp(phonenumber,t)=0)|(strcmp(roomnumber,t)=0) return 0; else return 1; Inform strcpy(id,a.id); strcpy(name,a.name);strcpy(number,a.n
17、umber); strcpy(sex,a.sex); strcpy(phonenumber,a.phonenumber); strcpy(roomnumber,a.roomnumber); return *this; Inform:Inform() delete number; delete id; delete name; delete sex; delete phonenumber; delete roomnumber; *achieve.h* #ifndef achieve_h #define achieve_h #include“subject.h“class achieve frie
18、nd ostream public: achieve(); void countaverage(subject *); int operator=(achieve achieve void instruction(); achieve(); void setnum(int a);int getnum(); subject *TT; private: int num; float sum; float average; #endif*achieve.cpp*#include“achieve.h“ achieve:achieve() TT=new subjectsizeof(subject); v
19、oid achieve:setnum(int a=0) num=a; int achieve:getnum() return num; void achieve:countaverage(subject *t) sum=average=0; float temp=0; for(int i=0;ixuefen; temp+=(t+i)-achievement)*(t+i)-xuefen); average=temp/sum; ostream it.TTi; return input; int achieve:operator=(achieve else return 0; achieve sum
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计语言 课程设计
限制150内