




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录 问题定义 .3 详细设计 3学生成绩信息结构体4 输入学生成绩信息 4注销学生基本信息5编辑学生基本成绩 5浏览成绩页面 .7被修改之后浏览成绩 8文件保存页面 .11实验总结及体会 .12学生成绩管理系统1、问题定义创建一个学生成绩管理系统。假设系统中每个学生记录只包括学号、姓名、数学成绩、英语成绩、总分等信息。程序的运行效果如下图所示, 主菜单如下:选择任意菜单后,实现相应功能。2、详细设计学生管理系统流程图学生成绩信息结构体struct STUDENT int id,age,chinese,math,english; char name21; students32;void student_new(void) int n; page_title(录入学生基本信息); for(n=0;n32;n+) if(studentsn.id=0) break; printf(学号:); scanf(%d,&studentsn.id); printf(姓名:); scanf(%s,&); printf(年龄:); scanf(%d,&studentsn.age); return_confirm(); 输入学生成绩信息void student_new(void) int n; page_title(录入学生基本信息); for(n=0;n32;n+) if(studentsn.id=0) break; printf(学号:); /*学号*/ scanf(%d,&studentsn.id); printf(姓名:); /*姓名*/ scanf(%s,&); printf(年龄:); scanf(%d,&studentsn.age); /*年龄*/ return_confirm();int search_id(void) int n,i; printf(请输入学生学号:); scanf(%d,&i); for(n=0;n32;n+) if(studentsn.id=i&studentsn.id!=0) printf(学号:%dn,studentsn.id); printf(姓名:%sn,); printf(年龄:%dn,studentsn.age); return n; printf(n输入错误或学号不存在.n); return -1; 注销学生基本信息void student_del(void) int n; page_title(注销学生基本信息); if(n=search_id()!=-1) studentsn.id=0; printf(n!该学生已注销.n); return_confirm(); 编辑学生基本信息void student_edit(void) int n; page_title(编辑学生基本信息); if(n=search_id()!=-1) printf(n请重新输入新信息:n学号:); scanf(%d,&studentsn.id); printf(姓名:); scanf(%s,&); printf(年龄:); scanf(%d,&studentsn.age); return_confirm(); void score_input(void) int s,n,t; page_title(录入成绩); printf(n请用数字键选择科目n1-语文 2-数学 3-英语n); scanf(%d,&s); for(n=0;n32;n+) if(studentsn.id!=0) printf(学号:%d 姓名:%s 成绩:,studentsn.id,); scanf(%d,&t); switch(s) case 1 : studentsn.chinese=t;break;/*用了switch语句 */ case 2 : studentsn.math=t;break; case 3 : studentsn.english=t;break; return_confirm(); 因为用了switch语句,以及3个case,且每个case后都加加了break,所以需要输入3次浏览成绩页面void score_edit(void) int n; page_title(修改成绩); if(n=search_id()!=-1) printf(语文:%d 数学:%d 英语:%dn,studentsn.chinese,studentsn.math,studentsn.english); printf(n请重新输入成绩:n语文:); scanf(%d,&studentsn.chinese); printf(数学:); scanf(%s,&studentsn.math); printf(英语:); scanf(%d,&studentsn.english); return_confirm(); 被修改之后浏览成绩void sort_it(char nn) int n,m,p,x,t32;for(n=0;n32;n+) switch(nn) case 1 : tn=studentsn.id;break; case 2 : tn=studentsn.chinese;break; case 3 : tn=studentsn.math;break; case 4 : tn=studentsn.english;break; case 5 : tn=studentsn.chinese+studentsn.math+studentsn.english;break; for(n=0;n32;n+) x=0; p=-1; for(m=0;mx) x=tm; p=m; tp=-1; INDEXn=p; void browser(void) int n,x; char k; sort_it(1); while(1) page_title(浏览); printf(按数字键选择排序方式或按 0 返回n); printf(学号-1t姓名tt年龄t语文-2t数学-3t英语-4t总分-5n); for(n=0;n32;n+) if(INDEXn!=-1) x=INDEXn; printf(%dt%st,studentsx.id,); printf(%dt%dt,studentsx.age,studentsx.chinese); printf(%dt%dt,studentsx.math,studentsx.english); printf(%dn,studentsx.chinese+studentsx.math+studentsx.english); k=getch(); if(k0) sort_it(k); else if(k=0) break; else continue; void init() FILE *fp; char t; int i; if(fp=fopen(data.dat,rb)=NULL) printf(数据文件读取错误,是否重新创建文件?YNn); t=getch(); if(t=y|t=Y) fp=fopen(data.dat,wb); if(fp=NULL) printf(创建文件失败,请确保文件读写权限后重新运行本程序); getch(); exit(0); printf(创建文件成功,请重新运行程序); getch(); exit(0); for(i=0;i32;i+) if(feof(fp) break;/*文件结束时退出*/ fread(&studentsi,sizeof(struct STUDENT),1,fp);/*读取文件中的数据*/ int save() FILE *fp; char t; int i; printf(是否保存操作至文件?YNn); t=getch(); if(t=n|t=N)exit(0); if(fp=fopen(data.dat,wb)=NULL) printf(文件保存失败,是否继续退出程序?n退出程序将导致数据丢失YN); t=getch(); if(t=y|t=Y) exit(0); return 0; for(i=0;i32;i+) fwrite(&studentsi,sizeof(struct STUDENT),1,fp); exit(0);文件保存页面如果选择Y,则下次登录时可以浏览到保存的信息。如果选择N,则下次登录时看不到此信息。int main(void) init();menu: page_title(操作选单); printf(请用数字键选择操作nn); printf(1 录入学生基本信息n2 修改学生基本信息n); printf(3 注销学生基本信息nn4 录入成绩n5 修改成绩nn); printf(6 浏览.n n0 退出n); switch(getch() case 1 : student_new();break; case 2 : student_edit();break; case 3 : student_del();break; case 4 : score_input();break; case 5 : score_edit();break; case 6 : browser();break; case 0 : save(); goto menu; 本次设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。实验总结及体会一 基础知识一定要牢固。在调试程序的过程中,有时候程序出了错误,找了半天找不到在哪里。这个时候往往会感觉十分不耐烦,但往往越是一些很小的小错误,越是往往容易被人疏漏,诸如“print”啦,注释引号括号不成对出现,遗漏scanf函数中的&符号等等,而这些却可能导致整个程序不运行,从而浪费了不少的时间。等到发现时,只会郁闷不已。因此,对于一个合格的程序员来说,牢固的基础知识是十分重要的。我们虽然没有必要达到那么高的要求,但牢固的基础知识对于程序的熟练编写和时间的节省也是大有裨益的。二调试程序的过程中,经验的积累和技巧的掌握是必要的。在这次的课程设计中,由于要编写的程序的篇幅较大,因此不可避免地出现了相当多的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.1气压带、风带与移动教学设计2024-2025学年高中地理湘教版(2019)选择性必修1
- 交易磋商与签订合同7篇
- 2025年大学讲座教授聘用合同
- 2025正规房屋租赁合同
- 新版本《2025云南省租赁合同书》
- 2025上海房屋抵押借款合同范本
- 济源事业单位笔试真题2025
- 2025年关于企业并购中合同劳动关系的法律适用
- 2025年度各类船舶购买合同
- 2025版权转让合同模板 版权授权许可合同
- 粉尘涉爆安全培训考试题及答案
- 力量国际礼仪培训课件
- GB/T 27696-2011一般起重用4级锻造吊环螺栓
- GB/T 10781.1-2021白酒质量要求第1部分:浓香型白酒
- 2023-瑞幸咖啡vi手册
- 实用英语口语900句
- 风机运行记录表
- 高中必修人教A版高中数学必修1指数函数一 完整版课件PPT
- 法律谈判实务完整版课件全套教学ppt教程
- PowerSurfacing 威力曲面 中文教程
- 2022藤椒油炒饭抖音推广方案-57P
评论
0/150
提交评论