简单的学籍管理系统c语言,c语言学生学籍管理系统—精简版.pdf

include stdio h include stdlib h include string h int shoudsave 0 struct student char num 10 学号 char name 20 姓名 char sex 4 性别 char yuan 学院 int ban 班级 char neartime 10 最近更新时间 typedef struct node struct student data struct node next Node Link void menu printf printf t1 登记学生资料 t t t t t2 删除学生资料 n printf t3 查询学生资料 t t t t t4 修改学生资料 n printf t5 保存学生资料 t t t t t0 退出系统 n printf n void printstart printf n void Wrong printf n 提示 输入错误 n void Nofind printf n 提示 没有找到该学生 n void printc 本函数用于输出中文 printf 学号 t 姓名 性别 学院 班级 n void printe Node p 本函数用于输出英文 printf 12s s t s t c t d n p data num p data name p data sex p data yuan p data b an Node Locate Link l char findmess char nameornum 该函数用于定位连表中符合要求 的接点 并返回该指针 Node r if strcmp nameornum num 0 按学号查询 r l next while r NULL if strcmp r data num findmess 0 return r r r next else if strcmp nameornum name 0 按姓名查询 r l next while r NULL if strcmp r data name findmess 0 return r r r next return 0 void Add Link l 增加学生 Node p r s char num 10 r l s l next while r next NULL r r next 将指针置于最末尾 while 1 printf 请你输入学号 以 0 返回上一级菜单 scanf s num if strcmp num 0 0 break while s if strcmp s data num num 0 printf 提示 学号为 s 的学生已经存在 若要修改请你选择 4 修改 n num printstart printc printe s printstart printf n return s s next p Node malloc sizeof Node strcpy p data num num printf 请你输入姓名 scanf s p data name getchar printf 请你输入性别 scanf s p data sex getchar printf 请你输入学院 scanf c getchar printf 请你输入班级 scanf d getchar 信息输入已经完成 p next NULL r next p r p shoudsave 1 void Qur Link l 查询学生 int sel char findmess 20 Node p if l next printf n 提示 没有资料可以查询 n return printf n 1 按学号查找 n 2 按姓名查找 n scanf d if sel 1 学号 printf 请你输入要查找的学号 scanf s findmess p Locate l findmess num if p printf t t t t 查找结果 n printstart printc printe p printstart else Nofind else if sel 2 姓名 printf 请你输入要查找的姓名 scanf s findmess p Locate l findmess name if p printf t t t t 查找结果 n printstart printc printe p printstart else Nofind else Wrong void Del Link l 删除 int sel Node p r char findmess 20 if l next printf n 提示 没有资料可以删除 n return printf n 1 按学号删除 n 2 按姓名删除 n scanf d if sel 1 printf 请你输入要删除的学号 scanf s findmess p Locate l findmess num if p r l while r next p r r next r next p next free p printf n 提示 该学生已经成功删除 n shoudsave 1 else Nofind else if sel 2 printf 请你输入要删除的姓名 scanf s findmess p Locate l findmess name if p r l while r next p r r next r next p next free p printf n 提示 该学生已经成功删除 n shoudsave 1 else Nofind else Wrong void Modify Link l Node p char findmess 20 if l next printf n 提示 没有资料可以修改 n return printf 请你输入要修改的学生学号 scanf s findmess p Locate l findmess num if p printf 请你输入新学号 原来是 s p data num scanf s p data num printf 请你输入新姓名 原来是 s p data name scanf s p data name getchar printf 请你输入新性别 原来是 s p data sex scanf s p data sex printf 请你输入新的学院 p data yuan scanf c getchar printf 请你输入新的班级 原来是 d p data ban scanf d getchar printf n 提示 资料修改成功 n shoudsave 1 else Nofind void Save Link l FILE fp Node p int flag 1 count 0 fp fopen c student wb if fp NULL printf n 提示 重新打开文件时发生错误 n exit 1 p l next while p if fwrite p sizeof Node 1 fp 1 p p next count else flag 0 break if flag printf n 提示 文件保存成功 有 d 条记录已经保存 n count shoudsave 0 fclose fp void main Link l 连表 FILE fp 文件指针 int sel char ch char jian int count 0 Node p r printf t t t t 学生成绩管理系统 n t t t t 建筑电气及智能化 0801 n l Node malloc sizeof Node l next NULL r l fp fopen C student rb if fp NULL printf n 提示 文件还不存在 是否创建 y n n scanf c if jian y jian Y fp fopen C student wb else exit 0 printf n 提示 文件已经打开 正在导入记录 n while feof fp p Node malloc sizeof Node if fread p sizeof Node 1 fp 将文件的内容放入接点中 p next NULL r next p r p 将该接点挂入连中 count fclose fp 关闭文件 printf n 提示 记录导入完毕 共导入 d 条记录 n count while 1 menu printf 请你选择操作 scanf d if sel 0 if shoudsave 1 getchar printf n 提示 资料已经改动 是否将改动保存到文件中 y n n scanf c if ch y ch Y Save l printf n 提示 你已经退出系统 再见 n break switch sel case 1 Add l break 增加学生 case 2 Del l break 删除学生 case 3 Qur l break 查询学生 case 4 Modify l break 修改学生 case 5 Save l break 保存学生 case 9 printf t t t 帮助信息 n break default Wrong getchar break

展开阅读全文

你可能感兴趣的:(简单的学籍管理系统c语言)