通信与信息工程学院
高级语言课程设计
班 级:姓 名:学 号:指导教师:设计时间:成 绩:评 语:
电子信息工程1503 周阳 刘锦 谷静霆
1507050314 1507050321 1507050334 刘晓佩 李远征 王静 倪云峰
2016-07-04 ~ 2016-07-24
通信与信息工程学院
二〇一七年
一、课程设计要求
设计教师工作管理系统,并拥有如下功能。1.计算并显示每个老师在一个学期中所教课程的总工作量。2.输入教师姓名可以查询教师信息。3.可以浏览并删改教师信息。4.完成教师信息
二、程序的功能设计
主函数 添加一个教师的信息 Void 删除一个教师的查找一个教师信息 显示所有教师信息保存 AddTeaMsg(TEACHER Teacher); Void DeleTeacher(PTEACH pNode); 信息PTEACH SearchTeach(char * Name); void ShowAllTeacher(void);
三、程序的数据结构
C语言使用结构体来扩展自定义的数据类型,数据结构如下: #pragma pack(4) //设置结构体的对其方式 typedef struct TEACH {
//数据域
char ArrTeachNum[10]; //教工号 char ArrTeachName[10]; //姓名 char ArrTeachSex[4]; //性别 char ArrTitle[10]; //职称 char ArrSubject[20]; //所教课程 char ArrClass[36]; //所教班级 unsigned int ClassNum ; //班级数目 unsigned int TheoryClaHour ; //理论课时
unsigned int practicerClaHour ; unsigned int AllClaHour ; //指针域
struct TEACH *pNext; }
//实践课时 //总课时
//指向下一个节点
四、程序的函数设计
1. 函数的功能描述 main函数
功能:调用菜单函数所示的函数; Menu()函数
功能:显示给用户所有的功能 AddTeaMsg()函数
功能:增一个教师信息 SearchTeach()函数
功能:查找一个教师信息 DeleTeacher()函数
功能:删除一个教师信息 ShowAllTeacher()函数 功能:显示所有老师信息 2. 函数的调用关系
main函数调用所有的子函数来完成相应操作; 查找,删除,修改信息函数都必须调用查找函数。
五、源程序代码
头文件:
#ifndef teach #define teach //所需的头文件
#include
#pragma pack(4) //设置结构体的对其方式 typedef struct TEACH {
//数据域
char ArrTeachNum[10]; char ArrTeachName[10]; char ArrTeachSex[4]; char ArrTitle[10];
//教工号 //姓名 //性别 //职称
char ArrSubject[20]; char ArrClass[36]; unsigned int ClassNum ; unsigned int TheoryClaHour ; unsigned int practicerClaHour ; double AllClaHour ;
//指针域
struct TEACH *pNext; }TEACHER;
typedef TEACHER * PTEACH;
//函数声明
//添加一个教师的信息
void AddTeaMsg(TEACHER Teacher); //删除一个教师信息
void DeleTeacher(PTEACH pNode); //查找一个教师信息
PTEACH SearchTeach(char * Name); //显示所有教师信息
void ShowAllTeacher(void); //保存信息进文件
void SaveTeachToFile(void); //菜单函数
void Menu(void);
#endif // !teach 源文件:
#include\
//声明链表的头和尾
TEACHER* pHead = NULL; //O TEACHER* pEnd = NULL; int main(void) {
//初始化变量 int flag = 1;
PTEACH pTemp = NULL; int nOrder = -1; TEACHER Teacher;
char Name[10] = {'\\0'};
Menu();
//所教课程 //所教班级 //班级数目 //理论课时 //实践课时 //总课时
//指向下一个节点
while (flag) {
printf(\请输入指令:\\n\); scanf(\, &nOrder); switch (nOrder) {
case 1: //OK {
printf(\请输入教工号:\);
scanf(\, Teacher.ArrTeachNum); printf(\请输入教师姓名:\);
scanf(\, Teacher.ArrTeachName); printf(\请输入性别:\);
scanf(\, Teacher.ArrTeachSex); printf(\请输入职称:\);
scanf(\, Teacher.ArrTitle); printf(\请输入所授课程:\);
scanf(\, Teacher.ArrSubject); printf(\请输入授课班级:\); scanf(\, Teacher.ArrClass); printf(\请输入授课班级数目:\); scanf(\, &Teacher.ClassNum); printf(\请输入理论课时时长:\);
scanf(\, &Teacher.TheoryClaHour); printf(\请输入实践课时时长:\);
scanf(\, &Teacher.practicerClaHour);
AddTeaMsg(Teacher); break; }
case 2: //OK {
printf(\请输入指定教师的姓名:\); scanf(\, Name);
pTemp = SearchTeach(Name); if (NULL == pTemp) {
printf(\该教师信息不存在\\n\); } else {
printf(\姓名:%s\\n工号:%s\\n性别:%s\\n职称:%s\\n所教课程:%s\\n所教班级:%s\\n班级数目:%d\\n理论课时:%d\\n实践课时:%d\\n总课