基于visual C++的教师工作量管理系统.doc_第1页
基于visual C++的教师工作量管理系统.doc_第2页
基于visual C++的教师工作量管理系统.doc_第3页
基于visual C++的教师工作量管理系统.doc_第4页
基于visual C++的教师工作量管理系统.doc_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生课程设计(实践)任务书、设计报告( C/C+ 语言程序设计)题 目教师工作量管理系统设计开发学生姓名指导教师学 院专业班级学生学号计算机基础教学实验中心教师工作量管理系统设计开发 摘要:本课程设计是一个实现对教师工作量数据库库进行一定基本操作的程序设计,本课程设计中, 程序设计设计语言采用Visual C+,运用数组、指针、函数结构体和各种变量编写程序,程序通过调试运行,基本实现开发目标中管理员查找,修改,添加,删除等功能,经过部分完善后,可以应用在实际教师工作量管理中。 关键词:简易教师工作量管理程序功能需求分析(功能要求),简易学生成绩管理程序概要设计,简易学生成绩管理程序详细设计及系统功能实现,遇到的问题及解决的办法,总结。1、 教师工作量管理系统程序功能需求分析(功能要求):采用文件和数组(或链表)等建立一个简单的教师工作量管理程序。程序运行时下述班级成绩表格(或其部分内容)在内存中用数组(或链表)表示,假设一学期开设课程不超过10名。程序运行结束时将表格保存到文件中以便下次使用。要求:A、教师信息处理(1) 输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。(2) 插入(修改)教师授课教学信息:(3) 删除教师授课教学信息:(4) 浏览教师授课教学信息:B、教师工作量数据处理:(1) 计算单个教学任务总课时。计算原则如下表:班级数目单个教学任务总课时21.5*(理论课时+实验课时)32*(理论课时+实验课时)=42.5*(理论课时+实验课时)(2) 计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。(3) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。C、教师综合信息输出提示:输出教师信息到屏幕。(总分之后的列要用程序语句计算)2、简易学生成绩管理程序程序概要设计:(1)系统模块层次结构图:(2)主模块算法流程:“开始”“输出菜单及提示信息”“输入选择”“输入学生成绩”“分课程等级”“添加某学生信息”“查找某学生信息”“修改某学生信息”“按指定顺序排序链表”“回收链表的内存” “交换两个结点的内容” “退出系统”。(3)全局变量或数据结构说明:#include#include#includestruct Item/保存学生信息的结构体,附加链表链接指针struct Temp/保存学生信息的结构体,用于记录到文件void numberOfRank(Item *p)/计算课程等级情况的函数Item *Create() /创建链表void addAItem(Item *head) /添加一个学生信息,加到链表的末尾void searchTheItem(Item *head,char s10)/查找学生信息,参数指定的是学号或者姓名void searchTheItem(Item *head,int numberOfA,int numberOfB,int numberOfC,int numberOfD) /重载,按课程等级查找void freshTheItem(Item *head,char s10)/修改学生信息Item *deleteTheItem(Item *h,char s10)/删除某学生的信息void memoryTheInformation(Item *head) /存储链表到文件,下次可以使用void createFromHighToLow(Item *head)/按总成绩从高到低排序链表void createFromHighToLow(Item *head , int x)/重载,按每一单科从高到低排序链表void Del(Item *head)/回收链表的内存void change(Item *a,Item *b) / 交换两个结点的内容(4)程序开发和运行的环境:Visual C+ 6.0 3、简易学生成绩管理程序详细设计及系统功能实现:(1)详细设计:#include #include #include #include using namespace std;struct node / 定义课程情况的存储结构 string Title; / 课程名称 (字符串型) int Class_number,Class40; / 班级数目 以及 班级(整型) double Theory,Experiment,Single_summary; / 理论课时 实验课时 以及该门课的教学任务总课时 (浮点型);struct data / 定义教师信息存储结构 string ID,Name,Sex,Position; / 教师号 教师名称 性别 职称 (字符串型) node Course10; / 教师所教课程具体信息 (可以是多门课程) int Course_number; / 教师所教课程数目 (整型) double Summary; / 教师一个学期总的教学工作量 (浮点型)Teacher2000; / 用数组存储教师信息void Input() /输入教师信息 int i,j,m,n,k; double mm; k=0; while (Teacherk.ID != ) k+; / 在存储数组中找出一个空的存储空间来存储输入信息 cout Teacherk.ID; / 输入教师号 cout endlTeacherk.Name; / 输入教师姓名 cout endlTeacherk.Sex; / 输入教师性别 cout endlTeacherk.Position; / 输入教师职称 cout endlTeacherk.Course_number; / 输入教师任教课程数 Teacherk.Summary=0; for (i=1;i=Teacherk.Course_number;i+) / 循环结构实现任教多门课程的信息录入 cout endl请输入第 iTeacherk.Coursei.Title; cout endlTeacherk.Coursei.Class_number; cout endl请输入该门课程所教班级:; for (j=1;jTeacherk.Coursei.Classj; cout endlTeacherk.Coursei.Theory; cout endlTeacherk.Coursei.Experiment; switch (Teacherk.Coursei.Class_number) /- case 1:mm=1*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment);break; case 2:mm=1.5*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment);break; case 3:mm=2*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment);break; / 计算该门课程的教学任务总课时 if (Teacherk.Coursei.Class_number 3) mm=2.5*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment); Teacherk.Coursei.Single_summary=mm; /- Teacherk.Summary += Teacherk.Coursei.Single_summary; / 累计教师一学期总的教学工作量 void Output(int x) / 输出教师信息 int i,j; cout 教师号:Teacherx.IDendl; cout 教师姓名:Teacherx.Nameendl; cout 教师性别:Teacherx.Sexendl; cout 教师职称:Teacherx.Positionendl; for (i=1;i = Teacherx.Course_number;i+) cout setprecision(2); cout 所教的第 i 门课程为:Teacherx.Coursei.Titleendl; cout 共有理论课时为 Teacherx.Coursei.Theory小时endl共有实验课时为 Teacherx.Coursei.Experiment小时endl; cout 分别给以下班级上课:; for (j=1;j=Teacherx.Coursei.Class_number;j+) cout Teacherx.Coursei.Classj ; cout endl该门课教学任务总课时为:Teacherx.Coursei.Single_summary小时; cout endl; cout 一学期总的教学工作量为:Teacherx.Summary小时endl;void Output_all() int i; for (i=0;i=1999;i+) / 循环查找记录数组,找出非空区间输出教师信息 if (Teacheri.ID != ) Output(i);cout endl;int Find () /查看教师信息! int i,j,m,n,k; string st; cout st; for (i=0;i=1999;i+) / 利用循环结构根据教师姓名(或者教师号)查找教师信息 if (st = Teacheri.ID | st = Teacheri.Name) Output(i); return 0; cout endl对不起,没有您要查找的教师或者您的输入信息有误,请核对您的输入!endl; void Delete() /删除教师信息! int i; string st; cout st; for (i=0;i=1999;i+) / 利用循环结构根据教师姓名(或者教师号)查找教师信息 if (Teacheri.Name = st | Teacheri.ID = st) break; if (Teacheri.Name = st | Teacheri.ID = st) / 如果找到目标信息,执行删除命令 Teacheri.ID=; Teacheri.Name=; else cout endl对不起,未找到您要删除的教师信息,请核对您的输入!endl;void Change_name(int x) /更改教师姓名 string st; cout st; Teacherx.Name=st; cout endl修改成功!endl; void Change_ID(int x) /更改教师号 string st; cout st; Teacherx.ID=st; cout endl修改成功!endl; void Change_sex(int x) /更改教师性别 string st; cout st; Teacherx.Sex=st; cout endl修改成功!endl; void Change_position(int x) /更改教师职称 string st; cout st; Teacherx.Position=st; cout endl修改成功!endl; void Change_course(int k) /更改教师授课信息 大体过程与输入教师授课信息相似 int i,j; string st; double mm; cout endlTeacherk.Course_number; Teacherk.Summary=0; for (i=1;i=Teacherk.Course_number;i+) cout endl请输入第 iTeacherk.Coursei.Title; cout endlTeacherk.Coursei.Class_number; cout endl请输入该门课程所教班级:; for (j=1;jTeacherk.Coursei.Classj; cout endlTeacherk.Coursei.Theory; cout endlTeacherk.Coursei.Experiment; switch (Teacherk.Coursei.Class_number) case 1:mm=Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment; case 2:mm=1.5*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment); case 3:mm=2*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment); if (Teacherk.Coursei.Class_number 3) mm=2.5*(Teacherk.Coursei.Theory+Teacherk.Coursei.Experiment); Teacherk.Coursei.Single_summary=mm; Teacherk.Summary += Teacherk.Coursei.Single_summary; cout endl修改成功! endl; int Change () /教师信息更改菜单 int i,j; string st; bool bo; char ch; cout st; / 输入希望更改的教师姓名(或者教师号) for (i=0;i=1999;i+) / 根据教师号(或者姓名)查找教师 if (Teacheri.Name = st | Teacheri.ID = st) break; if (Teacheri.Name = st | Teacheri.ID = st) j=1; else cout endl对不起,未找到您要修改的教师信息,请核对您的输入!endl; return 0; bo=true; while ( bo ) cout endl请输入您要修改的信息:A(姓名);B(教师号);C(性别);D(职称);E(任教课程):ch; / 输入更改选项 switch (ch) case A:Change_name(i);break; case B:Change_ID(i);break; case C:Change_sex(i);break; case D:Change_position(i);break; case E:Change_course(i);break; cout endlbo; void work() /工作菜单 char ch; cout 请输入您需要的操作:endl; cout A(输入教师信息)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论