c课程设计学生成绩管理系统_第1页
c课程设计学生成绩管理系统_第2页
c课程设计学生成绩管理系统_第3页
c课程设计学生成绩管理系统_第4页
c课程设计学生成绩管理系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录一、设计题目与设计目的意义3二、系统分析3三、系统设计4四、调试、排错、测试、试运行过程5五、 源程序主要代码7六、 总结及自我评价13七、 参考文献14一、设计题目与设计目的意义学生信息管理系统设计:内容:(1)系统功能需求:包括学生信息的添加、修改、删除和查询;(2)数据结构设计:使用结构体类型存储学生信息数据,并将数据存储于文件内以方便学生信息管理。(3)系统算法设计并编程实现学生信息的添加、修改、删除和查询功能。学生信息管理系统设计的目的意义:巩固和加深对C+课程的基本知识的理解和掌握。能够通过文件对数据进行操作,包括对文件的打开、关闭、读取、写入及重写等操作。学会函数的调用,能

2、够将一个大的程序分解为多个函数,实现模块化程序设计。学会利用C+语言进行简单程序设计的基本思路和方法。掌握一个程序编译、连接、调试的基本技能,提高运用高级语言解决实际问题的能力。二、系统分析选择Main函数退出修改查询删除插入排序显示输入菜单系统功能模块划分:三、系统设计:(1)、主函数:调用菜单函数。(2)、菜单函数:通过switch语句来实现选择要实现的功能函数。(3)、输入函数: 通过打开文件、输入学生信息、关闭文件、返回菜单来实现学生信息的输入。(4)、显示函数:以只读方式打开文件后读取文件内容来显示到计算机屏幕上最后再关闭文件返回菜单。(5)、排序函数:通过起泡法来对所输入的学生按成

3、绩由高到低的顺序进行排序。(6)、插入函数:通过将学生信息写入文件的方式来实现学生信息的插入。(7)、删除函数: 通过两个指针变量同时指向一个文件来对文件进行再次赋值来实现删除功能。(8)、查询函数:通过学生的姓名与文件中学生姓名的比较找到该学生后在将该学生的所有信息显示出来(9)、修改函数:通过两个指针变量同时指向一个文件先找到要修改学生,将其信息输入后在重新写入文件。(10)、选择函数:选择所要进行的操作。(11)、退出:退出系统。 四、调试、排错、测试、试运行过程输入学生信息如图:排序如图:插入学生信息如图:查询学生信息五、 源程序主要代码#include <stdio.h>

4、#include <stdlib.h>#include <string.h>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");

5、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(a<

6、'0'|a>'7'); 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&q

7、uot;,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) pri

8、ntf("cannot open the filen"); exit(0); printf("t学号t姓名t分数n"); for(i=0;i<n;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

9、 temp; void menu();FILE *fp;if(fp=fopen("student message","r")=NULL) printf("cannot open the file:n"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); for(j=0;j<n-1;j+) for(i=0;i<n-1-j;i+) if(stui.score<stui+1.score)temp=stui; stui=stu

10、i+1; stui+1=temp;for(i=0;i<n;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 ope

11、n the file:n"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("输入要插入学生的信息:n"); printf("学号:"); scanf("%s",st.num); printf("姓名:"); scanf("%s",); printf("分数:"); scanf("%d",&st.score)

12、; 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;i<n;i+

13、) 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;i<n;i+) if(strcmp(,name)=0) t=i; for(i=0;i<t;i+) fwrit

14、e(&stui,sizeof(struct student),1,fp1); for(i=t+1;i<n;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 messag

15、e","r")=NULL) printf("cannot open filen"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("输入要查询学生的姓名:"); scanf("%s",a); for(i=0;i<n;i+) if(strcmp(,a)=0) printf("t%st%st%dn",stui.num,,stui.s

16、core); 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;i<n;i+) fread(&stui,sizeof(struct student),1,fp)

17、; if (fp1=fopen("student message","w")=NULL) printf("can not open file!n"); exit(0); printf("请输入要修改学生的姓名:"); scanf("%s",name); for(i=0;i<n;i+) if(strcmp(,name)=0) t=i; printf("依次输入要修改学生的学号、姓名、分数:"); scanf("%s %s %d",st

18、ut.num,,&stut.score); for(i=0;i<n;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();

温馨提示

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

评论

0/150

提交评论