《2022年班级信息管理系统 3.pdf》由会员分享,可在线阅读,更多相关《2022年班级信息管理系统 3.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、(1) 信息: 系别 班级 级别 专业 班级 班主任 人数 男生人数女生人数少数民族人数(2) 设计要求a. 实现信息的录入、保存功能b. 实现信息的查找功能C. 实现信息的插入、删除、修改功能#include #include #include #include typedef struct Student/ 学生信息 signed short id; char name11; char sex7; signed short age; char telNum16; Student; typedef struct Node Student data; Node* next; Node; sta
2、tic Node* begin=NULL;/哨兵结点static signed short len=0;/ 链表长度void printMenu();/ 打印菜单void printBye();/ 打印结束语void printList();/ 打印所有学生信息void printStudent(Student st);/打印学生信息Node* lookupNode(signed short stid);/根据学号查询学生信息。int addNode(Student st);/ 添加学生信息。成功返回链表长度。内存分配失败-1;信息重复 0 int deleteNode(signed shor
3、t stid); /根据学号删除学生信息。 成功返回链表长度;未找到 -1 int updateNode(Student st);/根据学号修改学生信息。成功返回链表长度;未找到 0 void main() /初始化链表。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - begin=(Node*)malloc(sizeof(Node); begin-next=NULL; printf(n); printf(- 班级信息管理系统-n
4、); printf(- 太原科技大学2011-1-3 -n); printf(-n); printf(n); printMenu(); while (1) char ch; ch=getchar(); fflush(stdin); Student student; memset(&student,0,sizeof(Student); switch (ch) case 1: printf(- 添加学生信息。(学号为0 结束) n); while (1) printf(请输入新学号:); scanf(%d, &student.id); if (!student.id) break; printf(
5、请输入学生姓名:); fflush(stdin); gets(student.name); printf(请输入学生姓别:); scanf(%s, student.sex); printf(请输入学生年龄:); scanf(%d, &student.age); printf(请输入学生电话:); scanf(%s, student.telNum); int succ=addNode(student); if (succ) if (-1=succ) printf(内存错误!请重新输入!n); else printf(对不起!该学号已被占用!n); printf(n); 名师资料总结 - - -精
6、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - break; case 2: printf(- 删除学生信息。(学号为0 结束) n); while (1) signed short stid=0; printf(请输入要删除学生的学号:); fflush(stdin); scanf(%d, &stid); if (!stid) break; Node* delNode=lookupNode(stid); if (!delNode) printf(对不起
7、!你要删除的记录不存在。n); else printStudent(delNode-data); printf(您确定要删除这条记录吗?(任意键删除/ n 取消) n); fflush(stdin); char cDelete=getchar(); if (n=cDelete) continue; printf(删除成功!剩余记录数:%dn,deleteNode(stid); printf(n); break; case 3: printf(- 修改学生信息。(学号为0 结束) n); while (1) signed short stid=0; printf(请输入要修改学生的学号:); f
8、flush(stdin); scanf(%d, &stid); if (!stid) break; Node* updataNode=lookupNode(stid); if (!updataNode) printf(对不起!你要删除的记录不存在。n); else printStudent(updataNode-data); Student student; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - student.id=
9、stid; printf(修改学生姓名:); fflush(stdin); gets(student.name); printf(修改学生姓别:); scanf(%s, student.sex); printf(修改学生年龄:); scanf(%d, &student.age); printf(修改学生电话:); scanf(%s, student.telNum); updateNode(student); printf(修改成功! n); printStudent(updataNode-data); printf(n); break; case 4: printf(- 查询学生信息。(学号为
10、0 结束) n); while (1) signed short stid=0; printf(请输入要修改学生的学号:); fflush(stdin); scanf(%d, &stid); if (!stid) break; Node* findNode=lookupNode(stid); if (!findNode) printf(对不起!你要删除的记录不存在。n); else printStudent(findNode-data); printf(n); break; case 5: printList(); printMenu(); break; case 6: printBye();
11、 return; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - default: printMenu(); void printMenu() printf(-n); printf(- 1 、增加学生信息。2、删除学生信息。-n); printf(- 3 、修改学生信息。4、查询学生信息。-n); printf(- 5 、打印所有信息。6、退出。-n); printf(-n); void printBye() printf(-n
12、); printf( 感谢您使用班级信息管理系统n); printf( 再 见 n); printf(-n); void printList() Node* temp=begin-next; if (!temp) printf(暂时无记录可供操作! n); while (temp) printStudent(temp-data); temp=temp-next; void printStudent(Student st) printf(学号: %-6d 姓名: %-10s 性别: %-6s 年龄: %-3d 电话: %-15sn, st.id, st.name, st.sex, st.age,
13、 st.telNum); printf(-n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - Node* lookupNode(signed short stid) Node* temp=begin-next; while (temp) if (temp-data.id=stid) return temp; temp=temp-next; return NULL; int addNode(Student st) if (lo
14、okupNode(st.id) return 0; Node* temp=(Node*)malloc(sizeof(Node); if (!temp) return -1; temp-data=st; temp-next=begin-next; begin-next=temp; return +len; int deleteNode(signed short stid) Node* temp=begin; Node* pos=NULL; while (temp-next) if (temp-next-data.id=stid) pos=temp-next; temp-next=pos-next
15、; free(pos); return -len; temp=temp-next; return -1; int updateNode(Student st) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - Node* temp=lookupNode(st.id); if (!temp) return 0; temp-data=st; return len; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -