C语言课程设计案例-学生信息管理.ppt_第1页
C语言课程设计案例-学生信息管理.ppt_第2页
C语言课程设计案例-学生信息管理.ppt_第3页
C语言课程设计案例-学生信息管理.ppt_第4页
C语言课程设计案例-学生信息管理.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

VIP免费下载

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

文档简介

C语言课程设计 学生信息管理 2018/12/231C语言课程设计 一、功能要求 n能对学生的学号、姓名、性别、出 生日期、所学专业、所在班级信息 进行管理 n管理功能包括添加学生信息、查询 学生信息、修改学生信息、删除学 生信息、恢复删除信息 2018/12/232C语言课程设计 二、概要设计 学生信息管理 添加学生信息 查询学生信息 修改学生信息 删除学生信息 恢复删除信息 退出系统 2018/12/233C语言课程设计 三、详细设计 学生信息: 删除标志 字符 *为已删除标志 学号 长整数 姓名 字符串 最长10个字符 性别 字符 男-M,女-F 出生日期 4位年份,2位月份,2位日 所学专业 字符串 最长20个字符 所在班级 字符串 最长10个字符 平均成绩 实数 两位小数 2018/12/234C语言课程设计 数据文件: 1.文件名:“Student.dat” 2.文件格式:二进制随机文件,每个学 生一条记录。 2018/12/235C语言课程设计 主菜单: 1.添加学生信息 2.查询学生信息 3.修改学生信息 4.删除学生信息 5.恢复删除信息 0.退出 2018/12/236C语言课程设计 处理函数: 1.添加学生信息 AddStuden() (1)以“添加方式”打开学生数据文件 “Student.dat” (2)输入一个学生的有关信息 (3)将输入的学生信息写入 “Student.dat”文件 (4)继续添加?(y/n),“y”返回(2), 否则关闭文件,返回主菜单。 2018/12/237C语言课程设计 处理函数: 2.查询学生信息 QueryStuden() (1)以“只读方式”打开学生数据文件 “Student.dat” (2)输入一个学生的学号 (3)根据输入学号在文件中查找对 应的学生,找到显示学生的有关信 息,找不到,提示“该学号的学生不 存在。” (4)继续查询?(y/n),“y”返回(2) ,否则关闭文件,返回主菜单。 2018/12/238C语言课程设计 处理函数: 3.修改学生信息 UpdateStudent() (1)以“读写方式”打开学生数据文件 “Student.dat” (2)输入一个学生的学号 (3)根据输入学号在文件中查找对应的学 生,找到,编号显示学生的有关信息,找 不到,提示“该学号的学生不存在。” (4)选择修改项,输入修改内容; (5)修改结束,改写文件内容,否则返回 (4); (6)继续修改?(y/n),“y”返回(2),否则 关闭文件,返回主菜单。 2018/12/239C语言课程设计 处理函数: 4.删除学生信息 DeleteStudent() (1)以“读写方式”打开学生数据文件 “Student.dat” (2)输入要删除学生的学号 (3)根据输入学号在文件中查找对应的学 生,找到,显示学生的有关信息,找不到 ,提示“该学号的学生不存在。” (4)找到,选择“是删除该学生吗?(y/n)”, “y”将该学生信息的填写删除标志; (5)继续删除?(y/n),“y”返回(2),否 则关闭文件,返回主菜单。 2018/12/2310C语言课程设计 处理函数: 5.恢复删除信息 RestoreStudent() (1)以“读写方式”打开学生数据文件 “Student.dat” (2)输入要恢复学生的学号 (3)根据输入学号在文件中查找已删除学 生中是否有对应的学生,找到,显示学生 的有关信息,找不到,提示“该学号的学 生不存在。” (4)找到,选择“是恢复该学生吗?(y/n)”, “y”将该学生信息的删除标志去掉; (5)继续恢复?(y/n),“y”返回(2),否 则关闭文件,返回主菜单。 2018/12/2311C语言课程设计 四、代码设计 应包含的头文件: n#include n#include n#include n#include n#include 2018/12/2312C语言课程设计 数据结构:(结构体设计) typedef struct int year; int month; int day; DATE; typedef struct char flag; int number; char name11; char sex; DATE birthday; char speciality21; char ClassName11; float AverageGrade; STUDENT; 2018/12/2313C语言课程设计 学生信息显示函数 void display(STUDENT *pst) int dt; printf(“=n“); printf(“学号:%dn“,pst-number); printf(“姓名:%sn“,pst-name); if(pst-sex=M)printf(“性别:男n“); else printf(“性别:女n“); dt=pst-birthday.year*10000; dt+=pst-birthday.month*100; dt+=pst-birthday.day; printf(“出生日期:%dn“,dt); printf(“所学专业 :%sn“,pst-speciality); printf(“所在班级:%sn“,pst-ClassName); printf(“平均成绩:%.2fn“,pst-AverageGrade); printf(“=n“); 2018/12/2314C语言课程设计 主函数 int main(int argc, char* argv) char ch; voidAddStuden(),QueryStuden(); void UpdateStudent(),DeleteStudent(); void RestoreStudent() do system(“cls“); printf(“1.添加学生信息n“); printf(“2.查询学生信息n“); printf(“3.修改学生信息n“); printf(“4.删除学生信息n“); printf(“5.恢复删除信息n“); printf(“0.退出n“); printf(“=n“); printf(“请选择:“); ch=getch(); printf(“%c“,ch); switch(ch) case 1:AddStuden(); break; case 2:QueryStuden(); break; case 3:UpdateStudent(); break; case 4:DeleteStudent(); break; case 5:RestoreStudent(); break; case 0:exit(0); while(1); return 0; 2018/12/2315C语言课程设计 添加学生信息处理函数: void AddStuden() STUDENT st; long dt; FILE *fp; short fg=1; char str2; if(fp=fopen(“Student.dat“,“ab“)=NULL) printf(“文件打不开!n“); getch(); return; while(fg) system(“cls“); printf(“添加学生信息n“); printf(“=n“); 2018/12/2316C语言课程设计 st.flag= ; printf(“学号:“);scanf(“%d“, printf(“姓名:“);scanf(“%s“,); printf(“性别:“);scanf(“%s“,str); if(strcmp(str,“男“)=0)st.sex=M;else st.sex=F; printf(“出生日期(yyyymmdd):“);scanf(“%d“, st.birthday.year=dt/10000; st.birthday.month=dt%10000/100; st.birthday.day=dt%100; printf(“所学专业:“);scanf(“%s“,st.speciality); printf(“所在班级:“);scanf(“%s“,st.ClassName); printf(“平均成绩:“);scanf(“%f“, fwrite( printf(“=n“); printf(“继续添加吗?(y/n)“); if(getch()!=y) fclose(fp);fg=0; 2018/12/2317C语言课程设计 查询学生信息处理函数: void QueryStuden() STUDENT st; long dt,num; FILE *fp; short fg=1,fg1; if(fp=fopen(“Student.dat“,“rb“)=NULL) printf(“文件打不开!n“); getch(); return; while(fg) system(“cls“); printf(“查询学生信息n“); printf(“请输入查询学号:“); scanf(“%d“, rewind(fp);fg1=0; while(!feof(fp) 2018/12/2318C语言课程设计 fread( if(st.flag= fg1=1; break; if(fg1=0)printf(“该学号的学生不存在。n“); printf(“继续查询吗?(y/n)“); if(getch()!=y) fclose(fp); fg=0; 2018/12/2319C语言课程设计 修改学生信息处理函数: void UpdateStudent() STUDENT st; long dt,num; FILE *fp; short fg=1,fg1; char ch,str21; if(fp=fopen(“Student.dat“,“rb+“)=NULL) printf(“文件打不开!n“);getch(); return; while(fg) system(“cls“); printf(“修改学生信息n“); printf(“请输入修改学生学号:“); scanf(“%d“, 2018/12/2320C语言课程设计 rewind(fp);fg1=0; while(!feof(fp) fread( if(st.flag= printf(“修改学生信息n“); printf(“请输入修改学生学号:%dn“,num); printf(“=n“); printf(“1.学号:%dn“,st.number); printf(“2.姓名:%sn“,); if(st.sex=M)printf(“3.性别:男n“); else printf(“3.性别:女n“); dt=st.birthday.year*10000; dt+=st.birthday.month*100; dt+=st.birthday.day; 2018/12/2321C语言课程设计 printf(“4.出生日期:%dn“,dt); printf(“5.所学专业:%sn“,st.speciality); printf(“6.所在班级:%sn“,st.ClassName); printf(“7.平均成绩:%.2fn“,st.AverageGrade); printf(“0.修改完成n“); printf(“=n“); printf(“请选择修改序号:“); ch=getch(); printf(“%cn“,ch); switch(ch) case 1:printf(“学号“);break; case 2:printf(“姓名“);break; case 3:printf(“性别“);break; case 4:printf(“出生日期“);break; case 5:printf(“所学专业“);break; case 6:printf(“所在班级“);break; case 7:printf(“平均成绩“);break; case 0: 2018/12/2322C语言课程设计 fseek(fp,-(long)(sizeof(STUDENT),SEEK_CUR); fwrite( if(ch=1 scanf(“%s“,str); switch(ch) case 1:st.number=atoi(str);break; case 2:strcpy(,str);break; case 3:if(strcmp(str,“男“)=0)st.sex=M; else st.sex=F;break; case 4: st.birthday.day=atoi(str+6);str6=0; st.birthday.month=atoi(str+4);str4=0; st.birthday.year=atoi(str); break; case 5:strcpy(st.speciality,str);break; case 6:strcpy(st.ClassName,str);break; case 7:st.AverageGrade=(float)atof(str);break; 2018/12/2323C语言课程设计 while(ch!=0); fg1=1; break; if(fg1=0)printf(“该学号的学生不存在。n“); printf(“继续查询吗?(y/n)“); if(getch()!=y) fclose(fp); fg=0; 2018/12/2324C语言课程设计 删除学生信息处理函数: void DeleteStudent() STUDENT st; long dt,num; FILE *fp; short fg=1,fg1; if(fp=fopen(“Student.dat“,“rb+“)=NULL) printf(“文件打不开!n“);getch(); return; while(fg) system(“cls“); printf(“删除学生信息n“); printf(“请输入删除学生学号:“); scanf(“%d“, 2018/12/2325C语言课程设计 rewind(fp);fg1=0; while(!feof(fp) fread( if(st.flag= fg1=1; printf(“是删除该学生吗?(y/n)“); if(getch()=y) fseek(fp,-(long)(sizeof(STUDENT), SEEK_CUR); fputc(*,fp); break; 2018/1

温馨提示

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

评论

0/150

提交评论