当前位置:首页 > C语言教师管理系统
} else {
pEnd->pNext = pTemp; //链接 }
pEnd = pTemp;
pEnd->pNext = NULL; }
//查找一个教师信息
PTEACH SearchTeach(char * Name) {
PTEACH pTemp = pHead; //检测参数的合法性 if (NULL == Name) {
printf(\姓名输入错误!\\n\); return NULL; }
//判断链表是否为空
if (NULL == pHead || NULL == pEnd) {
printf(\链表为空!\\n\); return NULL; }
//遍历链表
while (pTemp != NULL) {
if (0 == strcmp(pTemp->ArrTeachName, Name)) {
return pTemp; }
pTemp = pTemp->pNext; }
printf(\无此教师信息!\\n\); return NULL; }
//删除一个教师信息
void DeleTeacher(PTEACH pNode) {
PTEACH pTemp = pHead; //判断
if (pHead == pNode) //删除头结点的情况 {
//pTemp = pHead;
pHead = pHead->pNext; free(pTemp); pTemp = NULL;
return; //结束 }
while (pTemp) {
if (pTemp->pNext == pNode) {
//删除
if (pNode == pEnd) //删除尾节点的情况 {
free(pNode); pNode = NULL; pEnd = pTemp;
pEnd->pNext = NULL; return; } else {
//记住要删除的节点
PTEACH p = pTemp->pNext; //链接
pTemp->pNext = pTemp->pNext->pNext; //释放节点 free(p); p = NULL; return; } }
pTemp = pTemp->pNext; } }
//显示所有教师信息
void ShowAllTeacher(void) {
PTEACH pTemp = pHead; while (pTemp != NULL) {
printf(\姓名:%s\\n工号:%s\\n性别:%s\\n职称:%s\\n所教课程:%s\\n所教班级:%s\\n班级数目:%d\\n理论课时:%d\\n实践课时:%d\\n总课
时:%3.2f\\n\,pTemp->ArrTeachName,pTemp->ArrTeachNum,pTemp->ArrTeachSe
x,pTemp->ArrTitle,pTemp->ArrSubject,pTemp->ArrClass,pTemp->ClassNum,pTemp->TheoryClaHour,pTemp->practicerClaHour,pTemp->AllClaHour); pTemp = pTemp->pNext; } }
//保存信息进文件
void SaveTeachToFile(void) {
FILE* pFile = NULL; PTEACH pTemp = pHead;
char strBuf[100] = {'\\0'}; char strNum[5] = { '\\0' };
if (NULL == pHead) {
printf(\没有教师信息\\n\); return; }
pFile = fopen(\教师信息.txt\, \); if (NULL == pFile) {
printf(\文件打开失败\\n\); return; }
strcpy(strBuf, pTemp->ArrTeachNum); strcat(strBuf, \);
strcat(strBuf, pTemp->ArrTeachName); strcat(strBuf, \);
strcat(strBuf, pTemp->ArrClass); strcat(strBuf, \);
strcat(strBuf, pTemp->ArrSubject); strcat(strBuf, \);
strcat(strBuf, pTemp->ArrTeachSex); strcat(strBuf, \);
strcat(strBuf, pTemp->ArrTitle);
itoa(pTemp->AllClaHour, strNum, 5); //转成ascii strcat(strBuf, strNum); strcat(strBuf, \);
itoa(pTemp->ClassNum, strNum, 5); strcat(strBuf, strNum); strcat(strBuf, \);
itoa(pTemp->practicerClaHour, strNum, 5); strcat(strBuf, strNum);
}
strcat(strBuf, \);
itoa(pTemp->TheoryClaHour, strNum, 5); strcat(strBuf, strNum); strcat(strBuf, \);
fwrite(strBuf, 1, strlen(strBuf), pFile); fwrite(\, 1, strlen(\), pFile); fclose(pFile);
六、调试及总结
在调试中遇到了不少问题,我曾想用char *P这个指针去代替数组,后来才发现这样是不行的,数组和指针是有区别的。还有,我也遇到了结构体的赋值问题,后来对单个成员进行赋值,才调试通过,使我认识到了自己的C语言知识还是有所不足,这正如有人所说,程序不是写出来的,而是debug出来的。 本次任务,以小组的形式进行,良好的提升了我们学生之间的合作能力以及团队协调能力,并且提高了我们的动手能力。在进行课题的过程中,我们曾一度陷入了僵局,缘由是我们的c语言知识还是略有不足。为了解决这些过程中出现的问题,我们曾多次进入图书馆去查询资料,来完善我们的系统并了解相关的知识。我们也曾与多位同学进行交流,虽然大家的系统不同但是都有着相同的基础,这是我们能完成这套系统的前提。系统完成中出现了许多的问题与错误,但我们通过长时间的检查与细致的研究解决了这些问题,最终完成了系统。这次设计对于我们来说有着重大的的意义,提升了我们的技术水平与素养。增加了我们的能力,是一次成功的活动。
共分享92篇相关文档