资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1/2/2018,C语言课程设计,1,C语言课程设计,学生信息管理,1/2/2018,C语言课程设计,2,一、功能要求,能对学生的学号、姓名、性别、出生日期、所学专业、所在班级信息进行管理管理功能包括添加学生信息、查询学生信息、修改学生信息、删除学生信息、恢复删除信息,1/2/2018,C语言课程设计,3,二、概要设计,学生信息管理,添加学生信息,查询学生信息,修改学生信息,删除学生信息,恢复删除信息,退出系统,1/2/2018,C语言课程设计,4,三、详细设计,学生信息:删除标志 字符 *为已删除标志学号 长整数姓名 字符串 最长10个字符性别 字符 男-M,女-F出生日期 4位年份,2位月份,2位日所学专业 字符串 最长20个字符所在班级 字符串 最长10个字符平均成绩 实数 两位小数,1/2/2018,C语言课程设计,5,数据文件:1.文件名:“Student.dat”2.文件格式:二进制随机文件,每个学生一条记录。,1/2/2018,C语言课程设计,6,主菜单:1.添加学生信息2.查询学生信息3.修改学生信息4.删除学生信息5.恢复删除信息0.退出,1/2/2018,C语言课程设计,7,处理函数:1.添加学生信息 AddStuden() (1)以“添加方式”打开学生数据文件“Student.dat” (2)输入一个学生的有关信息 (3)将输入的学生信息写入“Student.dat”文件 (4)继续添加?(y/n),“y”返回(2),否则关闭文件,返回主菜单。,1/2/2018,C语言课程设计,8,处理函数:2.查询学生信息 QueryStuden() (1)以“只读方式”打开学生数据文件“Student.dat” (2)输入一个学生的学号 (3)根据输入学号在文件中查找对应的学生,找到显示学生的有关信息,找不到,提示“该学号的学生不存在。” (4)继续查询?(y/n),“y”返回(2),否则关闭文件,返回主菜单。,1/2/2018,C语言课程设计,9,处理函数:3.修改学生信息 UpdateStudent() (1)以“读写方式”打开学生数据文件“Student.dat” (2)输入一个学生的学号 (3)根据输入学号在文件中查找对应的学生,找到,编号显示学生的有关信息,找不到,提示“该学号的学生不存在。” (4)选择修改项,输入修改内容; (5)修改结束,改写文件内容,否则返回(4); (6)继续修改?(y/n),“y”返回(2),否则关闭文件,返回主菜单。,1/2/2018,C语言课程设计,10,处理函数:4.删除学生信息 DeleteStudent() (1)以“读写方式”打开学生数据文件“Student.dat” (2)输入要删除学生的学号 (3)根据输入学号在文件中查找对应的学生,找到,显示学生的有关信息,找不到,提示“该学号的学生不存在。” (4)找到,选择“是删除该学生吗?(y/n)”,“y”将该学生信息的填写删除标志; (5)继续删除?(y/n),“y”返回(2),否则关闭文件,返回主菜单。,1/2/2018,C语言课程设计,11,处理函数:5.恢复删除信息 RestoreStudent() (1)以“读写方式”打开学生数据文件“Student.dat” (2)输入要恢复学生的学号 (3)根据输入学号在文件中查找已删除学生中是否有对应的学生,找到,显示学生的有关信息,找不到,提示“该学号的学生不存在。” (4)找到,选择“是恢复该学生吗?(y/n)”,“y”将该学生信息的删除标志去掉; (5)继续恢复?(y/n),“y”返回(2),否则关闭文件,返回主菜单。,1/2/2018,C语言课程设计,12,四、代码设计,应包含的头文件:#include #include #include #include #include ,1/2/2018,C语言课程设计,13,数据结构:(结构体设计)typedef structint year;int month;int day;DATE;typedef structchar flag;int number;char name11;char sex;DATE birthday;char speciality21;char ClassName11;float AverageGrade;STUDENT;,1/2/2018,C语言课程设计,14,学生信息显示函数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);,1/2/2018,C语言课程设计,15,主函数int main(int argc, char* argv)char ch;voidAddStuden(),QueryStuden();void UpdateStudent(),DeleteStudent();void RestoreStudent()dosystem(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;,1/2/2018,C语言课程设计,16,添加学生信息处理函数: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);,1/2/2018,C语言课程设计,17,st.flag= ;printf(学号:);scanf(%d,1/2/2018,C语言课程设计,18,查询学生信息处理函数: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,while(!feof(fp),1/2/2018,C语言课程设计,19,fread(,1/2/2018,C语言课程设计,20,修改学生信息处理函数: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,1/2/2018,C语言课程设计,21,rewind(fp);fg1=0;while(!feof(fp)fread(,1/2/2018,C语言课程设计,22,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:,1/2/2018,C语言课程设计,23,fseek(fp,-(long)(sizeof(STUDENT),SEEK_CUR);fwrite( ,1/2/2018,C语言课程设计,24,while(ch!=0);fg1=1;break;if(fg1=0)printf(该学号的学生不存在。n);printf(继续查询吗?(y/n);if(getch()!=y)fclose(fp);fg=0;,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号