




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目:教务管理系统 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李 晓 虹2015 年 1 月 10 日课程设计报告模块内容要求:1.系统需求分析1.1 系统要求该系统使用Visual Basic 6.0语言进行整体系统设计,且拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库。且该系统使用Access来建立数据库,Access多用于中小型企业以及人数相对不是较大的学校来设计中小型数据库。一般学校的教务系统数据库用Access来设计完全能达到要求。并通过调查,要求系统需要有一些简单的要求,由于操作人员的计算机知识普遍较差,要求系统要有良好的人机界面,让操作人员一目了然。鉴于该系统的使用对象为两大部分即教务处管理员和各班主任,要求有较好的权限管理。因为原始数据修改简单方便,支持相对权限管理者可以直接修改数据。方便的数据查询,支持多条件查询。在相应的权限下,管理者删除数据方便简单,数据稳定性较好。1.2需求分析本系统的用户主要是教务处管理员和各班级班主任,通过该系统管理员可以对教师或学生的档案信息进行查看和查询,并且还可以对教师和学生的档案信息、成绩信息进行修改、增加或删除等操作,这样在一定程度上做到教务管理信息的安全性,从而使教务管理工作顺利的进行。教务管理中总是需要面对大量的录入信息如学生个人档案信息、教师个人档案信息、学生班级基本信息、学生基本成绩信息、学生成绩查询,教师档案的查询修改等。因此需要信息进行及时管理更新,及时了解各个管理环节中信息的变更,力求提高管理效率。由于本系统管理的对象较为单一,并且都是在校教师学生,况且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。本系统力求使系统功能界面操作简洁明了,功能齐全且易于非计算机人员操作。根据学校教务管理系统需要实现的一些目标来分析,该系统将数据库的设计可以抽象为简单的六大类基本的数据表,即:总体教师档案信息表、总体学生档案信息表、学校所开设的各年级的班级及班级号信息表、各班级学生信息表、各班级学生成绩信息表、各年级开设的课程管理信息表。2.总体设计1.1 Visual Basic 6.0简介Visual Basic 6.0(VB)2是一种由微软公司开发的包含协助开发环境的事件驱动编程语言,是一种我们常用的编程开发工具。从任何标准来说,VB都是世界上使用人数最多的语言不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言,简单点来说就是微软为了更好的让人们学习编程,应用Basic 开发语言的一套工具。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。VB把过往的纯代码编程过度到可视化编程,将一些经常要使用到的功能以一个个的控件的形式出现,例如 Label(标签)、TextBox(文本框)等等(都是本系统所用到的)。利用VB的数据访问特性,用户可以对包括Microsoft SQL Server、Access和其他企业数据库在内的大部分数据库格式创建数据库和前端应用程序,以及可调整的服务器端部件。利用ActiveX(TM)技术,VB可使用如Microsoft Word、Microsoft Excel及其他Windows应用程序提供的功能,甚至可直接使用VB专业版和企业版创建的应用程序对象。VB 的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体 ,让用户用起来一目了然。它具有清晰地图形界面,不需编写大量代码去描述界面元素的外观和位置 。本系统所设计的页面可以让用户清晰地看出所有管理的功能,让他们简单轻松地去完成复杂的教务管理工作。2.2教务管理系统总体设计图3.详细设计代码:#include #include #include #include #include #include #include #include #include #include #include using namespace std;/* 快速模匹配*/void getnext(char *p,int *next) int j,k; j=0;k=-1; next0=-1; while(jstrlen(p)-1) if(k=-1|pk=pj) j+;k+; nextj=k; else k=nextk; int KMP(char *s,char *p) int i,j; i=j=0; int next100; getnext(p,next); while(i90)cre=grade; else if(rec=80.0&rec=70.0&rec=60.0&rec70.0)cre=grade*0.6; else cre=0; return cre;class Student Course cou;/学生所选的课程 char id10,name20;/学号/姓名 int cmdid;/指令代号 int cnt;/所修课程数 char phonenum18,roomnum18,sex18;/电话号码、寝室号、性别public: double credit;/学生的总学分 double totalRecord;/综合成绩 void tips();/提示内容 void executeCmd();/执行命令函数 void getCmd(string cmd);/获取命令参数函数 void query();/查询功能函数 void caculateGrade();/计算成绩 void delStu();/删除学生功能函数 void refresh();/更新数据函数 void Sort(bool cmdnum);/排序功能函数 void Update(); void Exit();/* 功能使用提示*/void Student:tips() cout-endl; cout学籍管理系统操作指令介绍n; cout 数据录入功能:Updaten; cout 查询功能:n 基本情况查询:An 成绩查询:Bn 删除功能:n 先键入del然后输入学生学号/姓名即可n 排序功能:n 升序输入:upn 降序输入:downendl; cout输入EOF表示退出此系统endl; cout-=10&tmp=26) puts(info); tmp=-1; if(feof(file)break; fclose(file); cout-endl;/* 计算成绩*/void Student:caculateGrade() credit=0.0; cnt=0; printf(输入学生学号n); char ids10; int tmp1=-1,tmp2=-1; double tmpRecord,tmpCredit; scanf(%s,ids); printf(n); FILE *file1,*file2; file1=fopen(A.txt,r); file2=fopen(B.txt,r); if(file1!=NULL&file2!=NULL) while(tmp1=-1) fscanf(file1,%st%st%st%st%st,id,name,sex,roomnum,phonenum); if(ids1=id1) tmp1=0; printf(学 号:%s 姓 名:%sn,ids,name);while(tmp2=-1)fscanf(file2,%st%st%st%dt%dt%dt%dt,id,cou.id,,&cou.grade,&cou.regular_grade,&cou.exeperiment_grade,&cou.exam_paper_grade);if(ids1=id1) cnt+; tmpRecord=cou.caculateRecord(); tmpCredit=cou.caculateCredit(); printf(课程编号:%s 课程名称:%8s 综合成绩:%.2lf 实得学分: %.2lfn,cou.id,,tmpRecord,tmpCredit); credit+=tmpCredit;if(feof(file2)break;printf(共修:%d科,实得总学分为: %.2lfn,cnt,credit); /* 删除某一个学生*/void Student:delStu() char ids10; Student stu100,stu0100; printf(输入要删除的学生的学号n); scanf(%s,ids); FILE *file1,*file2,*file3,*file4; file3=fopen(A.txt,w); file4=fopen(B.txt,w); file1=fopen(A.txt,r); file2=fopen(B.txt,r+); int cnt=0,cnt1=0; if(file1!=NULL&file2!=NULL) while(1) fscanf(file1,%st%st%st%st%st,id,name,sex,roomnum,phonenum); if(ids1!=id1) strcpy(stu0cnt1.id,id); strcpy(,name); strcpy(stu0cnt1.sex,sex); strcpy(stu0cnt1.roomnum,roomnum); strcpy(stu0cnt1.phonenum,phonenum); cnt1+; if(feof(file1)break; fclose(file1); if(remove(A.txt)!=0) printf(ahgjagkajgn); for(int i=0;i cnt1;i +) fprintf(file3,%s %6s %s %s %sn,stu0i.id,,stu0i.sex,stu0i.roomnum,stu0i.phonenum); fclose(file3); while(1) fscanf(file2,%st%st%st%dt%dt%dt%dt,id,cou.id,,&cou.grade,&cou.regular_grade,&cou.exeperiment_grade,&cou.exam_paper_grade); if(ids1!=id1) strcpy(stucnt.id,id); strcpy(stucnt.cou.id,cou.id); strcpy(,); stucnt.cou.regular_grade=cou.regular_grade; stucnt.cou.exam_paper_grade=cou.exam_paper_grade; stucnt.cou.exeperiment_grade=cou.exeperiment_grade; stucnt.cou.grade=cou.grade; cnt+; if(feof(file2)break; if(remove(B.txt)!=0)printf(ahgkjagan); for(int i=0;icnt;i+) fprintf (file4, %s %s %s %d %d %d %dn,stui.id,stui.cou.id,,stui.cou.grade,stui.cou.regular_grade,stui.cou.exeperiment_grade,stui.cou.exam_paper_grade); fclose(file4); /* 排序功能:首先按照实际学分进行排序,实际学分相等的话,按照综合成绩进行排序 cmp1采用从小到大进行排序,cmp2采用从打到小进行排序*/bool cmp1(Student a,Student b) return (a.credit=b.credit)?a.totalRecordb.totalRecord:a.creditb.totalRecord):a.creditb.credit;/* 学生成绩或学分的升降序排列,cmdnum为true是从大到小,为false是从小到大进行排列*/void Student:Sort(bool cmdnum) FILE* file; file =fopen(B.txt,r); Student stu100; int cnt=0; while(1) fscanf(file,%st%st%st%dt%dt%dt%dt,id,cou.id,,&cou.grade,&cou.regular_grade,&cou.exeperiment_grade,&cou.exam_paper_grade); /stucnt.id=id; strcpy(stucnt.id,id); strcpy(stucnt.cou.id,cou.id); strcpy(,); stucnt.totalRecord=cou.caculateRecord(); stucnt.credit=cou.caculateCredit(); cnt+; if(feof(file)break; if(cmdnum)sort(stu,stu+cnt,cmp2); else sort(stu,stu+cnt,cmp1); printf(排序后结果为:n); for(int i=0;icnt;i+) printf(学号:%s 编号:%s 名称:%8s 综合成绩:%.2lf 实得学分:%.2lf 名次:%dn,stui.id,stui.cou.id,,stui.totalRecord,stui.credit,i+1); cout-endl;/* 执行命令函数*/void Student:executeCmd() switch(cmdid) case 1: query(); break; case 2: caculateGrade(); break; case 3: delStu(); break; case 4: Sort(false); break; case 5: Sort(true); break; case 6: Exit(); case 7: Update(); default: break; int main() FILE *file1,*file2; file1=fopen(A.txt,r); file2=fopen(B.txt,r); char cmd10; Student stu; stu.tips(); while(scanf(%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于人工智能的初中信息技术课程改革研究论文
- 艺术治疗师管理制度
- 芳烃油安全管理制度
- 茶叶溯源码管理制度
- 院校培训部管理制度
- 设备安装方案
- 保险公司保险销售营销渠道风险管理策略模板课件演示文档资料-早会分享激励专题培训资料
- 财务会计与流动资产管理知识分析记录(一)
- 自动化软件质量保证
- 褐色国风汉族民歌宣传介绍教育课件
- 【模板】纯化水微生物限度检查法验证报告
- 样品管理程序检验科程序文件
- 04D701-3 电缆桥架安装
- 叉车操作安全规范(图片版)课件
- 前置胎盘临床诊断与处理指南课件
- 《Python程序设计(第3版)》完整版PDF
- 15D501建筑物防雷设施安装图集
- 房屋安全简易鉴定表
- 《水产养殖前沿讲座》课程教学大纲
- 渔业成品油价格补助专项资金管理暂行办法
- 卵巢交界性肿瘤课件
评论
0/150
提交评论