




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+课程设计目 录一、设计题目与设计目的意义3二、系统分析3三、系统设计4四、调试、排错、测试、试运行过程5五、 源程序主要代码7六、 总结及自我评价13七、 参考文献14一、设计题目与设计目的意义学生信息管理系统设计:内容:(1)系统功能需求:包括学生信息的添加、修改、删除和查询;(2)数据结构设计:使用结构体类型存储学生信息数据,并将数据存储于文件内以方便学生信息管理。(3)系统算法设计并编程实现学生信息的添加、修改、删除和查询功能。学生信息管理系统设计的目的意义:巩固和加深对C+课程的基本知识的理解和掌握。能够通过文件对数据进行操作,包括对文件的打开、关闭、读取、写入及重写等操作。学会函数的调用,能够将一个大的程序分解为多个函数,实现模块化程序设计。学会利用C+语言进行简单程序设计的基本思路和方法。掌握一个程序编译、连接、调试的基本技能,提高运用高级语言解决实际问题的能力。二、系统分析选择Main函数退出修改查询删除插入排序显示输入菜单系统功能模块划分:三、系统设计:(1)、主函数:调用菜单函数。(2)、菜单函数:通过switch语句来实现选择要实现的功能函数。(3)、输入函数: 通过打开文件、输入学生信息、关闭文件、返回菜单来实现学生信息的输入。(4)、显示函数:以只读方式打开文件后读取文件内容来显示到计算机屏幕上最后再关闭文件返回菜单。(5)、排序函数:通过起泡法来对所输入的学生按成绩由高到低的顺序进行排序。(6)、插入函数:通过将学生信息写入文件的方式来实现学生信息的插入。(7)、删除函数: 通过两个指针变量同时指向一个文件来对文件进行再次赋值来实现删除功能。(8)、查询函数:通过学生的姓名与文件中学生姓名的比较找到该学生后在将该学生的所有信息显示出来(9)、修改函数:通过两个指针变量同时指向一个文件先找到要修改学生,将其信息输入后在重新写入文件。(10)、选择函数:选择所要进行的操作。(11)、退出:退出系统。 四、调试、排错、测试、试运行过程输入学生信息如图:排序如图:插入学生信息如图:查询学生信息五、 源程序主要代码#include #include #include int n=5; /*全局变量*/struct student /*定义结构体数组*/ char num10; char name10; int score;stu3; int menu_select() /*菜单选择函数*/ char a; do system(cls); printf(t*学生成绩管理系统*n); printf(tt1.输入学生成绩n); printf(tt2.显示学生成绩n); printf(tt3.学生成绩排序n); printf(tt4.插入学生记录n); printf(tt5.删除学生记录n); printf(tt6.查询学生成绩n); printf(tt7.修改学生成绩n); printf(tt0.退出n); printf(t*n); printf(n); printf(给出你的选择(0-7):); a=getchar(); while(a7); return(a);void input() /*定义输入函数*/ int i; char c; void menu(); FILE *fp; if(fp=fopen(student message,w)=NULL) printf(cannot open the filen); exit(0); printf(学号 姓名 分数 (需要终止输入时请在该行结尾输入n)n); for(i=0;i+) scanf(%s %s %d,stui.num,,&stui.score); fwrite(&stui,sizeof(struct student),1,fp); c=getchar(); if(c=n) break; n=i+1; fclose(fp); system(pause); menu();void display() /*定义显示函数*/ int i; void menu(); FILE *fp; if(fp=fopen(student message,r)=NULL) printf(cannot open the filen); exit(0); printf(t学号t姓名t分数n); for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); printf(t%st%st%dn,stui.num,,stui.score); fclose(fp); system(pause); menu();void sort() /*定义排序函数*/ int i,j; struct student temp; void menu();FILE *fp;if(fp=fopen(student message,r)=NULL) printf(cannot open the file:n); exit(0); for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); for(j=0;jn-1;j+) for(i=0;in-1-j;i+) if(stui.scorestui+1.score)temp=stui; stui=stui+1; stui+1=temp;for(i=0;in;i+)printf(t%st%st%dn,stui.num,,stui.score);fclose(fp); system(pause); menu();void insert() /*定义插入函数*/ int i; struct student st; void menu(); FILE *fp; if(fp=fopen(student message,a)=NULL) printf(cannot open the file:n); exit(0); for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); printf(输入要插入学生的信息:n); printf(学号:); scanf(%s,st.num); printf(姓名:); scanf(%s,); printf(分数:); scanf(%d,&st.score); n+; fwrite(&st,sizeof(struct student),1,fp); fclose(fp); system(pause); menu();void delet() /*定义删除函数*/ int i,t; char name10; void menu(); FILE *fp,*fp1; if (fp=fopen(student message,r)=NULL) printf(can not open file!n); exit(0); for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); if (fp1=fopen(student message,w)=NULL) printf(can not open file!n); exit(0); printf(请输入要删除学生的姓名:); scanf(%s,name); for(i=0;in;i+) if(strcmp(,name)=0) t=i; for(i=0;it;i+) fwrite(&stui,sizeof(struct student),1,fp1); for(i=t+1;in;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf(该学生信息已删除!nn); fclose(fp); fclose(fp1); system(pause); menu();void query() /*定义查询函数*/ int i; char a10; void menu(); FILE *fp; if(fp=fopen(student message,r)=NULL) printf(cannot open filen); exit(0); for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); printf(输入要查询学生的姓名:); scanf(%s,a); for(i=0;in;i+) if(strcmp(,a)=0) printf(t%st%st%dn,stui.num,,stui.score); fclose(fp); system(pause); menu();void revise() /*定义修改函数*/ int i,t; char name10; void menu(); FILE *fp,*fp1; if(fp=fopen(student message,r)=NULL) printf(cannot open filen); exit(0); for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); if (fp1=fopen(student message,w)=NULL) printf(can not open file!n); exit(0); printf(请输入要修改学生的姓名:); scanf(%s,name); for(i=0;in;i+) if(strcmp(,name)=0) t=i; printf(依次输入要修改学生的学号、姓名、分数:); scanf(%s %s %d,stut.num,,&stut.score); for(i=0;in;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf(该学生信息已修改成功!); fclose(fp); fclose(fp1); system(pause); menu();void quite() /*退出*/ printf(再见!nn);void menu() /*定义菜单函数*/ switch(menu_select() case 1: input();break;case 2: display();break;case 3: sort();break;case 4: insert();break; case 5: delet();break; case 6: query();break;case 7: revise();break;case 0: quite(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低碳环保的演讲稿集锦15篇
- 儿童手足口病的饮食止痛方案
- 领土安全知识竞赛题库及答案解析
- 奉贤星火安全员培训课件
- 九台公务员考试题及答案
- 小儿推拿教学课件
- 大连市安监局安全培训课件
- 2024-2025学年工程硕士考试黑钻押题带答案详解AB卷
- 2025年人教版8年级数学上册《三角形》专题训练试卷(详解版)
- 中信银行长沙市天心区2025秋招笔试英文行测高频题含答案
- 第2章-信息可视化设计的概念、原则与类型60课件
- 人体解剖学动作分析
- 某水利水电工程二期混凝土施工监理细则
- 大学学生违纪处罚办法
- 防错原理及案例课件
- 癌痛规范化治疗课件资料
- DB37-T 1997.1-2019.物业服务规范 第1部分:通则
- 牛津9AU3-Head-to-head名师制作优质教学课件
- 小学数学西南师大四年级上册二加减法的关系和加法运算律《减法的运算性质》教学设计
- 通信光缆线路工程安全技术交底大全
- 购牛合同参考参考
评论
0/150
提交评论