学生信息管理系统.docx
- 文档编号:7022294
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:20
- 大小:152.87KB
学生信息管理系统.docx
《学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
学生信息管理系统
课 程 实 训 报 告
课程名称 《C 语言程序设计》
系别:
工程技术系
专业班级:
计应 1101
组号:
第四组
******
实训题目:
学生信息管理系统
实训日期:
2012 年 6 月 21 日
*******
2012 年 6 月 20 日
1、通过 C 语言课程设计,使学生能够将学到的面向对象的设计思想
运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活
中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多
态的概念。
2、通过这次课程设计掌握《C 语言程序设计》的编程思想,为后续
课程打下基础。
3、培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。
课程设计的要求 ;
利用学到的编程知识和编程技巧,要求学生:
1、对系统进行功能模块分析、控制模块分析正确。
2、系统设计要能完成题目所要求的功能。
3、编程简练,可用,尽可能的使系统的功能更加完善和全面。
4、使用说明书、流程图要清楚。
1、课程设计的题目及简介
有新生来报到,要逐个录入其信息,如:
姓名、性别、籍贯、民族、
生日、政治面貌、身份证号、高数成绩。
要求设计链表类来实现,并统
计学生信息。
2、设计说明
总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数
据结构设计及整体结构设计合理。
也可根据自己对题目的理解增加新的
功能模块。
1、录入学生信息
录入学生的个人信息,例如姓名、性别、籍贯、民族、生日、政治面
貌、身份证号、高数成绩、大学英语成绩、C++成绩、大学物理成绩、马
克思主义成绩、总分。
2、显示学生信息
显示学生的个人信息。
3、查找学生信息
查找录入学生的个人信息。
4、删除学生信息
删除学生的个人信息。
5、修改学生信息
修改学生的个人信息。
6、统计学生成绩
统计学生的个人信息,例如高数成绩的总分,平均分,及格率。
7、保存学生信息
0、退出系统
实训目的
实训内容
实训简单操作步骤
录入和显示学生信息界面;
统计学生的个人信息成绩界面;
这一周的 C 语言课程实训,时间上说长不长,说短也不短,却让我
学到了很多!
第一点:
C 语言,我们需要学习的知识还有很多。
在这次的实训过程
中,我们遇到的许多难题,我们翻阅了大量的书籍资料,我想只有努力
勤奋的学习,才可以取得最后的成功!
第二点:
团队合作是非常重要的。
独木不成林,在成功的道路上不
可能是一帆风顺的,在团队合作中,我们应该相互帮助,共同合作,才
能最终取得成功。
想要成功就必须付出艰辛的努力,不断用知识的力量来武装自己,
感染他人,这样我们才能胜利。
指导教师
(签 名)
2012 年 6 月 24 日
实训心得体会
附录:
1、录入学生信息 流程图
录入学生信息
退出
判断是否重复
学生信息
Y N
继续录入学生
成绩
判断是否继续
1
继续录入学生成
绩
输入学生的信
息,例如姓名,
年龄
显示学生的
各类信息
按照学号或
者姓名修改
学生的信息
保存学生信
(1),返回
(0)
功能模块图
学生信息管理系统
1:
录入学生信息
2:
显示学生信息
3:
查找学生信息
4:
删除学生信息
5:
修改学生信息
6:
统计学生成绩
7:
保存学生信息
0:
退出系统
0
返回主界面
按学号或者姓
名查找学生信
息
按照学号删除
学生的信息
统计学生的各
类科目的总成
绩,平均分和
及格率
息
退出系统
菜单
二、程序清单
#include
#include
#include
#include
using namespace std;
class student
{
protected:
int number;
char name[20];
char sex[6];
char place[20];
char nation[6];
char birth[20];
char party[10];
char id[20];
float score[4];
public:
student *next;
student(){ }
~student(){ }
char* getname(){ return name; }
int getnumber(){ return number;}
double getscore(int i) { return score[i];}
float getg(){ return (score[0]+score[1]+score[2]+score[3]+score[4]); }
void input()
{ int e=1;
cout<<"\t\t\t 按提示输入:
"< cout<<"\t\t 输入学号: "; cin>>number; cout<<"\t\t 输入姓名: "; cin>>name; do { lable: cout<<"\t\t 输入性别: "; cin>>sex; if(strcmp(sex,"男")==0 || strcmp(sex,"女")==0) { cout<<"\t\t 输入籍贯: "; cin>>place; cout<<"\t\t 输入民族: "; cin>>nation; cout<<"\t\t 输入生日: "; cin>>birth; cout<<"\t\t 输入政治面貌: "; cin>>party; cout<<"\t\t 输入身份证号: "; cin>>id; cout<<"\t\t 输入高数分数: "; cin>>score[0]; cout<<"\t\t 输入大学英语分数: "; cin>>score[1]; cout<<"\t\t 输入 c++语言程序设计分数: "; cin>>score[2]; cout<<"\t\t 输入大学物理分数: "; cin>>score[3]; cout<<"\t\t 输入马克思列宁主义哲学分数: "; cin>>score[4]; e=0; } else { cout<<"\t\t\t 无此类型性别! 重新输入! "< e=1; goto lable; } }while(e); return ; } void input(ifstream & is) { is>>number>>name>>sex>>place>>nation>>birth>>party>>id >>score[0]>>score[1]>>score[2]>>score[3]>>score[4]; is.get(); } void output() { cout<<"学生基本信息如下: "< cout<<"学号: "< <<"姓名: "< <<"性别: "< <<"籍贯: "< <<"民族: "< <<"生日: "< <<"政治面貌: "< <<"身份证号: "< <<"高数: "< <<"大学英语: "< <<"c++语言程序设计: "< <<"大学物理: "< <<"马克思列宁主义哲学: "< <<"总分: "< } void output(ofstream & os) { os< < < < < < < < < < < < < } }; class school { public: school(){ head=new student; head->next=NULL; key=0; } ~school(){ delete head; } void input(); void mend(); void del(); int find(student **p,int num,char *pn="^"); void found(); void show(); void count(); void save(); void begin(); void clear(); char mainmenu(); int getkey(){ return key;} void setkey(int k){ key=k; } private: student *head; int key; }; //录入函数 void school: : input() { student *p,*p2=NULL; p=head; int n; while(p->next) p=p->next; while(n) { p2=new student; p2->input(); p->next=p2; p2->next=NULL; p=p->next; school: : setkey (1); cout<<"\t\t\t 按 1 继续,按 0 返回 : "; cin>>n; } } //子查找函数 int school: : find(student **p1,int num,char *pn) { student *p; p=head; while(p->next) { (*p1)=p; if( (p->next)->getnumber()==num||! strcmp( (p->next)->getname(),pn ) ) return 1; p=p->next; } return 0; } //查找函数 void school: : found() { student *p; int num=-1,n=9; char name[20]="^"; do { cout<<"\t\t1: 按学号查找,2: 按姓名查找: "; cin>>n; }while(n<1||n>2); if(n==1) { cout<<"\t\t\t 输入学号: "; cin>>num; } if(n==2) { cout<<"\t\t\t 输入姓名: "; cin>>name; } if(! find(&p,num,name) ) { cout<<"\t\t 找不到你要查找的内容! "< return; } (p->next)->output(); } //删除函数 void school: : del() { student *p,*p2; int num; cout<<"\t\t\t 输入学号: "; cin>>num; if( ! find(&p,num,"^") ) { cout<<"\t\t 找不到你要删除的内容! "< return; } (p->next)->output(); p2=p->next; p->next=p2->next; delete p2; school: : setkey (1); } //显示函数 void school: : show() { student *p; p=head; while(p->next) { (p->next)->output(); p=p->next; } } //修改函数 void school: : mend() { student *p; int num=-1,n; char name[20]="^"; do { cout<<"\t\t1: 按学号修改,2: 按姓名修改: "; cin>>n; }while(n<1||n>2); if(n==1) { cout<<"\t\t\t 输入学号: "; cin>>num; } if(n==2) { cout<<"\t\t\t 输入姓名: "; cin>>name; } if( ! find(&p,num,name) ) { cout<<"\t\t 找不到你要修改的内容! "< return; } (p->next)->output(); (p->next)->input(); school: : setkey (1); } //保存函数 void school: : save() {student *p; p=head; ofstream os("student.txt",ios: : out); if (school: : getkey()==1) { while(p->next) { (p->next)->output(os); p=p->next; } } cout<<"\t\t\t 文件已保存! "< school: : setkey(0); } //初始化函数 void school: : begin() { student *p,*p2; p=head; clear(); long t; ifstream is("student.txt",ios: : in); if(! is) { ofstream os("student.txt",ios: : out); os.close(); return ; } int num=-1; while (1) {num=-1; t=is.tellg(); is>>num; is.seekg(t); if(num<0) { is.close(); return; } p2=new student; p2->input(is); p->next=p2; p2->next=NULL; p=p->next; } } //清空函数 void school: : clear() { student *p,*p2; p=head->next; while( p ) { p2=p; p=p->next; delete p2; } } //统计函数 void school: : count() { student *p; p=head; int n=0; double g[5]={0,0,0,0,0}; float j[5]={0,0,0,0,0}; while(p->next) { p=p->next; n++; for(int i=0;i<5;i++) { g[i]=g[i]+( p->getscore(i) ); (p->getscore(i) )>=60? j[i]++ : 0 ; } } cout<<"\t\t\b\b\b\b 高数总分: "< "< <<"及格率: "< "< <<"平均分: "< "< <<"\t\t\b\b\b\bc++语言程序设计总分: "< "< <<" 及格率: "< <<"\t\t\b\b\b\b 大学物理总分: "< "< <<"及格率: "< <<"\t\t\b\b\b\b 马克思列宁主义哲学总分: "< "< <<" 及格率: "< } //主选菜单函数 char school: : mainmenu() { char n[6]; cout<<"\n\n~~~~~\(0^◇^0)/欢迎进入学生学籍管理系统\(0^◇^0) /~~~~~"< cout<<""< <<"▁▂▃▄▅▆▇███████████████▇▆▅▄▃▂▁"< <<"★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★"< <<"☉☉1: 录入学生信息☉☉"< <<"☉☉2: 显示学生信息☉☉"< <<"☉☉3: 查找学生信息☉☉"< <<"☉☉4: 删除学生信息☉☉"< <<"☉☉5: 修改学生信息☉☉"< <<"☉☉6: 统计学生成绩☉☉"< <<"☉☉7: 保存学生信息☉☉"< <<"☉☉0: 退出系统☉☉"< <<"★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★"< <<"★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★"< <<"请选择: "; cin>>n; return n[0]; } //主函数 void main() {school pp; int k=1; char n; pp.begin(); while(k==1) {n=pp.mainmenu(); switch(n) {case '1': pp.input(); break; case '2': pp.show(); break; case '3': pp.found(); break; case '4': pp.del(); break; case '5': pp.mend(); break; case '6': pp.count(); break; case '7': pp.save(); break; case '0': if(pp.getkey()==1) {cout<<"\t\t\t 是否保存? 1 : 保存 0: 不保存 : "; cin>>k; if(k==1) pp.save(); } pp.clear(); k=0; break; } } } //源程序结束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统