版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安交通大学城市学院面向对象程序设计及C+课程设计报告题目:学生信息管理系统C+版学号:姓名:班级:计算机001专业:计算机科学与技术导师:庞志成地址:西安交通大学城市学院开始日期:2011年11月08日完成日期:2011年11月26日总目录1 序言12 项目简介12.1 系统标识12.2 系统功能12.3 用户选择12.4 系统功能23 模块划分33.1 登入模块33.2 学生信息管理模块33.3 课程管理模块33.4 成绩管理模块33.5 管理员管理模块33.6 退出模块34 模块图35 流程图56 性能要求67 源代码摘录78 程序的运行及结果分析329 遇到的问题及解决方法4410 总
2、结和体会451.序言随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。本系统主要应用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生选课、针对这些要求设计了学生信息管理系统。2.项目简介2.1.系统标识系统名称:学生信息管理系统2.2.系统功能本系统主要功能是实现学校学生的信息管理、课程管理、
3、成绩管理、学籍管理以及使用该系统的用户管理。2.3.用户选择本系统面向的用户有:学校的系统人员、管理人员、教师、学生。所以对计算机的人性化和易用性比较高,应用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生选课,做到看界面简单易懂,容易操作,提高了学校管理效率以及提升了学生信息的安全性和完整性。2.4.系统功能本系统主要应用于学生学籍管理、信息查询、教务信息维护和学生选课、学生奖惩安排几部分,又因为用户的不同,例如学生、教师、系统管理员的身份不同,用户的权限也有所划分,具有不同的操作和
4、功能。2.4.1.有关学籍信息的输入,包括输入学生基本信息、所在院系、所学专业、所在班级、所学课程和成绩等。2.4.2.学生信息的查询,包括查询学生基本信息、所在班级、已学课程和学生成绩等。2.4.3.学生信息的修改,包括增加、删除等。2.4.4.班级管理信息的输入,包括班级设置,年级信息等。2.4.5.课程信息的设置和查询等。2.4.6.课程信息的修改,包括增加,删除等。2.4.7学生成绩信息的管理和查询等。2.4.8.学生奖惩信息的管理和设置等。3.模块划分3.1.登入模块:用户登陆(教师登陆,管理员登陆)。3.2.学生信息管理模块:此模块由学生基本信息、系别信息、班级信息、成绩信息等组成
5、。3.3.课程管理模块:此模块由课程信息、选课信息组成。3.4.成绩管理模块:此模块由成绩信息组成。3.5.管理员管理模块:此模块由管理员信息组成。3.6.退出模块:退出管理系统。4.模块图4.1.登入模块用户登入学生登入管理员登入4.2.学生信息管理模块学生信息管理学籍信息系别班级信息课程信息成绩信息奖罚信息插入查找删除修改查找修改查找修改查找修改插入查找修改插入4.3.课程管理模块课程管理课程信息选课信息插入修改查找查找修改插入4.4.成绩管理模块成绩管理成绩信息插入查找修改4.5.管理员管理模块管理员管理管理员设置添加修改删除查找4.6.退出模块5.流程图6.性能要求本学生信息管理系统要
6、能够抵御用户可能的各种操作,包括修改、更新、删除等操作,以保证软件的可行性,安全性,稳定性,健壮性,同时要对数据进行检验,保证数据有效性,可操作性,安全性。只有管理员才能修改和删除、更新有关数据,学生只有查看浏览的权限。同时系统严格控制对数据库的修改等操作设置功能,只有高级管理员和系统管理员才能对数据库进行修改,更新等操作。7. 源代码摘录#include#include#include#include#include#include/int menu1();void menu();void admenu();void shuoming();int tem=0;int tem1=0;void
7、menu2();/函数声明/class Stu /构建学生类private:char xibie20;/系别char banji20;/班级long int xuehao;/学号char xingming10;/学生姓名char stmima10;/学生密码char prize100;/获奖情况float shuziluoji;/数字逻辑课程float shuluoshiyan;/数字逻辑实验float wuli;/大学物理float yingyu;/大学英语float math;/高等数学float tiyu;/大学体育float wulishiyan;/大学物理实验float averag
8、e;/平均分int order;public:friend void Input(Stu stud) ;/注册学生信息函数friend void Statistic(Stu stud);/统计输出学生信息函数friend void Lookup(Stu stud);/管理员浏览学生信息函数friend void Lookup_st();/学生浏览个人信息friend void Modify(Stu stud);/管理员修改学生信息friend void Modify_st_mima();/学生修改个人密码friend void Delete(Stu stud);/管理员年删除学生信息frien
9、d void Output(Stu stud);/学生成绩全部输出函数friend void Sort(Stu stud);/按平均分排序friend void Insert(Stu stud);/管理员插入学生信息friend void st_denglu();/学生登录函数friend void stmenu();/学生登录界面friend void Write(Stu stud,int n);/将学生信息写入文件 friend int Read(Stu stud);/将学生信息从文件中读出stud100;/class AD/构建管理员类private:char name20;/管理员姓名
10、char pass10;/管理员密码public:friend void ad_denglu();/管理员登录设置函数friend void input_ad(AD admini);/重新注册管理员函数friend voidDelete_ad(AD admini);/按姓名删除管理员函数friend void menu2();/管理员信息管理界面friend void Output_ad(AD admini);/显示全部管理员friend void Xie_ad(AD admini,int n);/将管理员信息写入文件函数friend int Du_ad(AD admini);/将管理员信息从
11、文件中读出friend int menu1();/管理员界面admini10;/void shuoming()system(cls);coutendl;cout老师或同学:endlendl;cout你好!endlendl由于刚学的c+,c+中的好多功能不了解,因此难免做到十全十美,为了更好地使用改学生信息系统,请注意一下几点:endlendlendl 1.管理员首次登:管理员姓名:曹春,管理员密码是: ,管理员登陆后必须先进行管理员信息注册!endlendl 2.管理员每次注册时决定了管理员的个数与全部管理员的密码,再次注册时,以前的信息全部丢失!endlendl 3.学生登录,必须管理员先将
12、将学生信息注册(包括管理员可设置的初始密码)后,学生才能进行相应的操作,否则,学生能够不能进行任何操作!endlendl 4.有不满意的地方还请提出宝贵意见!毕竟是自己奋战三周的夜晚熬出来的.累死了!endlendlendl 5.联系电话:33 33endlendl;system(pause);menu();/-向文件中写入管理员信息函数:void Xie_ad(AD admini,int n)ofstream myFile_ad(administrator);int count=n,i=0;myFile_adcount;for(i=0;icount;i+)myFile_ad adminii.
13、name adminii.pass endl; myFile_ad.close();/-将学生信息写入文件函数: void Write(Stu stud,int n) fstream myFile;myFile.open(student.dat,ios:out|ios:binary);if(!myFile)coutstudent.dat cant open!endl;abort();int count=n;myFilecountendlendl;for(int i=0;i=count;i+)myFilestudi.xibie studi.banji studi.xuehao studi.stm
14、ima studi.xingming studi.wuli studi.wulishiyan studi.yingyu studi.tiyu studi.shuziluoji studi.shuluoshiyan studi.math studi.averagestudi.prizeendlendlcount;for(int i=0;adminii.pass; myFile_ad.close(); return count; /-从文件中读数据(将学生信息从文件中读出):int Read(Stu stud) fstream myFile; myFile.open(st
15、udent.dat,ios:in|ios:binary); if(!myFile)coutstudent.dat文件打开失败!count;for(int i=0;istudi.xibiestudi.banjistudi.xuehaostudi.stmimastudi.xingmingstudi.wulistudi.wulishiyan studi.yingyustudi.tiyustudi.shuziluojistudi.shuluoshiyanstudi.mathstudi.averagestudi.prize; myFile.close(); return count ;/-管理员操作:显
16、示全部学生信息 void Output(Stu stud) system(cls); /*运行前清屏*/int n=Read(stud);coutendl 显示全部学生信息 =endl;if(!stud)cout没有记录; elsefor(int i=0;in;i+)cout-endl; /输出该学生信息:cout系别:studi.xibieendl;cout班级:studi.banjiendl; cout学号:studi.xuehaoendl; cout姓名:studi.xingmingendl; cout大学物理:studi.wuliendl; cout大学物理实验studi.wulish
17、iyanendl; cout大学英语:studi.yingyuendl; cout大学体育:studi.tiyuendl; cout数字电路与数字逻辑:studi.shuziluojiendl; cout数字电路与数字逻辑实验:studi.shuluoshiyanendl; cout高等数学:studi.mathendl; cout平均分:studi.averageendl;cout获奖情况:endlstudi.prizeendlendlendl; cout-endl; /-显示全部管理员void Output_ad(AD admini) /-显示全部学生信息 system(cls); /*运
18、行前清屏*/int n=Du_ad(admini);coutendl 显示全部管理员 =endl;if(!admini)cout没有记录; elsefor(int i=0;in;i+)cout-endl; /输出该学生信息:cout姓名:endl;cout密码:adminii.passendl; cout-endl; system(pause);menu2();/按平均分降序排列:/-按平均分对学生成绩记录项进行降序排序 void Sort(Stu stud) system(cls); /*运行前清屏*/ int i,j,k; float s; char t20;cou
19、tendl 降序排序成绩 =endl;int n=Read(stud);for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;jn-1-i;j+) if(studj.averagestudj+1.average) strcpy(t,studj+1.xibie); strcpy(studj+1.xibie,studj.xibie); strcpy(studj.banji,t); /strcpy(t,studj+1.banji); strcpy(studj+1.banji,studj.banji); strcpy(studj.banji,t); k=studj+1.xuehao;
20、studj+1.xuehao=studj.xuehao; studj.xuehao=k; strcpy(t,studj+1.xingming); strcpy(studj+1.xingming,studj.xingming); strcpy(studj.xingming,t); s=studj+1.shuziluoji; studj+1.shuziluoji=studj.shuziluoji; studj.shuziluoji=s; s=studj+1.shuluoshiyan; studj+1.shuluoshiyan=studj.shuluoshiyan; studj.shuluoshiy
21、an=s; s=studj+1.wuli; studj+1.wuli=studj.wuli; studj.wuli=s; s=studj+1.yingyu; studj+1.yingyu=studj.yingyu; studj.yingyu=s; s=studj+1.math; studj+1.math=studj.math; studj.math=s; s=studj+1.tiyu; studj+1.tiyu=studj.tiyu; studj.tiyu=s; s=studj+1.wulishiyan; studj+1.wulishiyan=studj.wulishiyan; studj.w
22、ulishiyan=s; s=studj+1.average; studj+1.average=studj.average; studj.average=s; cout-endl; /*格式头*/ for(i=0;in;i+) /*循环输入*/ printf(-n,i+1); /输出该学生信息:cout系别:studi.xibieendl;cout班级:studi.banjiendl; cout学号:studi.xuehaoendl; cout姓名:studi.xingmingendl;cout大学物理:studi.wuliendl; cout大学物理实验studi.wulishiyanend
23、l; cout大学英语:studi.yingyuendl; cout大学体育:studi.tiyuendl; cout数字电路与数字逻辑:studi.shuziluojiendl; cout数字电路与数字逻辑实验:studi.shuluoshiyanendl; cout高等数学:studi.mathendl; cout平均分:studi.averageendl;cout获奖情况:(简述)endlstudi.prizeendlendlendl; Write(stud,n);/-插入学生信息:void Insert(Stu stud) system(cls); /*运行前清屏*/int n=Rea
24、d(stud);char s;coutendl 新增学生信息=endl;while(s!=n&s!=N)coutstudn.xibie;coutstudn.banji; coutstudn.xuehao;coutstudn.prize; coutstudn.xingming; coutstudn.wuli; coutstudn.wulishiyan; coutstudn.yingyu; coutstudn.tiyu; coutstudn.shuziluoji; coutstudn.shuluoshiyan; coutstudn.math; studn.average=(studn.shuzil
25、uoji+studn.shuluoshiyan+studn.wuli+studn.yingyu+studn.math+studn.tiyu+studn.wulishiyan)/7; cout平均分studn.averageendl;cout获奖情况:(简述)studn.prize;n+; cout提示:插入成功!endl; /*返回成功信息*/cout是否继续输入(y/n)s;Write(stud,n); /-注册管理员信息void input_ad(AD admini) system(cls); /*运行前清屏*/int i=0;char s;coutendl 请输入管理员的信息 =endl
26、endl;while(s!=n&s!=N);coutadminii.pass; cout提示:是否继续写入学生信息?(Y/N); cins; /*输入判断*/ i+; Xie_ad(admini,i);cout管理员注册成功!endl;system(pause);menu2;/管理员删除学生信息:void Delete(Stu stud) /-按学号查找,删除学生信息 system(cls); /*运行前清屏*/ int n=Read(stud);int s; int i=0,j;coutendl 删除学生信息 =endl;cout请输入需要删除学生的学号:s;
27、 while(studi.xuehao-s)!=0&in) i+; /*查找判断*/ if(i=n) cout提示:对不起,无法找到该学生endl; /*返回失败信息*/ elsefor(j=i;jn-1;j+) /*删除操作*/ strcpy(studj.xibie,studj+1.xibie); strcpy(studj.banji,studj+1.banji); studj.xuehao=studj+1.xuehao; strcpy(studj.xingming,studj+1.xingming); studj.wuli=studj+1.wuli; studj.wulishiyan=st
28、udj+1.wulishiyan;studj.yingyu=studj+1.yingyu; studj.tiyu=studj+1.tiyu; studj.shuziluoji=studj+1.shuziluoji; studj.shuluoshiyan=studj+1.shuluoshiyan; studj.math=studj+1.math; studj.average=studj+1.average;strcpy(studj.prize,studj+1.prize); cout提示:已成功删除!endl; /*返回成功信息*/ Write(stud,n-1); /void Delete_a
29、d(AD admini) /-按姓名查找,删除管理员信息 system(cls); /*运行前清屏*/ int n=Du_ad(admini);char temp10; int i=0,j;coutendl 删除管理员 =endl;cout请输入需要删除管理员的姓名:temp; while(strcmp(,temp)!=0&i10) cout提示:对不起,没有找到该管理员的信息endl; /*删除失败信息*/ elsefor(j=i;jn-1;j+) /*删除操作*/ strcpy(,adminij+1.name); strcpy(adminij
30、.pass,adminij+1.pass); cout提示:已成功删除!endl; /*返回成功信息*/ Xie_ad(admini,n-1);system(pause); /-管理员修改学生信息void Modify(Stu stud) system(cls); /*运行前清屏*/ int n=Read(stud);int s; int i=0;coutendl 修改学生信息 =endl;cout请输入需要修改成绩学生的学号:s; while(studi.xuehao-s)!=0&in) i+; /*查找判断*/ if(i=n) cout提示:对不起,无该学生的成绩endl; /*输入失败信
31、息*/ elsecout-该学生的信息-endl; /*格式头*/ cout-endl; /输出该学生已有的信息:cout系别:studi.xibieendl;cout班级:studi.banjiendl; cout学号:studi.xuehaoendl; cout姓名:studi.xingmingendl;cout大学物理:studi.wuliendl; cout大学物理实验studi.wulishiyanendl; cout大学英语:studi.yingyuendl; cout大学体育:studi.tiyuendl; cout数字电路与数字逻辑:studi.shuziluojiendl;
32、cout数字电路与数字逻辑实验:studi.shuluoshiyanendl; cout高等数学:studi.mathendl; cout平均分:studi.averageendl;cout获奖情况(简述):endlstudi.prizeendlendl;/-管理员重新录入学生信息cout-endl; cout请重新输入该学生的信息endlendl;cout系别:studi.xibie ;cout班级:studi.banji; cout学号:studi.xuehao; cout姓名:studi.xingming; coutstudi.wuli; coutstudi.wulishiyan; co
33、utstudi.yingyu; coutstudi.tiyu; coutstudi.shuziluoji; coutstudi.shuluoshiyan; coutstudi.math;cout获奖情况(简述):studi.prize; studi.average=(studi.shuziluoji+studi.shuluoshiyan+studi.wuli+studi.yingyu+studi.math+studi.tiyu+studi.wulishiyan)/7; char c; cout是否保存数据?(y/n)c; if(c!=n&c!=N) Write(stud,n);/-学生修改个人
34、密码:void Modify_st_mima()int n=Read(stud);int i;i=tem;char temp20;a:cout请输入你的原始密码:temp;if(strcmp(studi.stmima,temp)!=0)cout对不起!你的密码输入错误!endl;goto a;else if(strcmp(studi.stmima,temp)=0)cout请输入新密码:temp;strcpy(studi.stmima,temp);cout密码修改成功!endl;Write(stud,n);system(pause);stmenu();/-查找学生信息 :void Lookup(
35、Stu stud) system(cls); /*运行前清屏*/ int n=Read(stud);int s; int i=0;coutendl 查找学生信息 =endl;cout请输入需要查找学生的学号:s; while(studi.xuehao-s)!=0&in) i+; /*查找判断*/ if(i=n) cout提示:对不起,无法找到该学生的信息!endl; /*输入失败信息*/ elsecout-endl; /输出该学生信息:cout系别:studi.xibieendl;cout班级:studi.banjiendl; cout学号:studi.xuehaoendl; cout姓名:studi.xingmingendl; cout大学物理:studi.wuliendl; cout大学物理实验studi.wulishiyanendl; cout大学英语:studi.yingyuendl; cout大学体育:studi.tiyuendl; cout数字电路与数字逻辑:studi.shuziluojiendl; cout数字电路与数字逻辑实验:studi.shu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外贸业务员谈判技巧与实战指南
- 企业会议筹备与议程安排模板
- 电子商务平台运营策略与营销指南
- 《电子商务概述》-第九章
- 2026年酒店家具合同(1篇)
- 2025-2026学年抒情散文写作教学设计
- 超高层点式公寓塔楼裙楼及地下室项目钢筋工程专项施工方案
- 12.3机械效率 教学设计 -2023-2024学年人教版物理八年级下册
- 第四章 向量教学设计中职数学拓展模块一 上册湘科技版(2021·十四五)
- 2026幼儿园骨干教师培养工作计划及实施方案
- 中小学生交通安全日课件
- 心理减压方法图解
- 2026年安徽机电职业技术学院单招职业适应性测试题库及答案1套
- 车间配电柜移位施工方案
- 2025浙江嘉兴桐乡农商银行秋季招聘笔试备考试题及答案解析
- 《新生儿黄疸光疗护理操作流程(2024)》
- 快递安检机知识培训内容课件
- 猪场良种扩繁方案(3篇)
- 2025年计算机一级考试题库操作题及答案
- 呼吸内科慢病健康管理体系构建与实施路径
- 统编版高中政治必修3《政治与法治》第1~3单元+期末共4套测试卷(含答案)
评论
0/150
提交评论