1、二、系统分析选择Main函数退出修改查询删除插入排序显示输入系统功能模块划分:三、系统设计:(1)、主函数:调用菜单函数。(2)、菜单函数:通过switch语句来实现选择要实现的功能函数。(3)、输入函数: 通过打开文件、输入学生信息、关闭文件、返回菜单来实现学生信息的输入。(4)、显示函数:以只读方式打开文件后读取文件内容来显示到计算机屏幕上最后再关闭文件返回菜单。(5)、排序函数:通过起泡法来对所输入的学生按成绩由高到低的顺序进行排序。(6)、插入函数:通过将学生信息写入文件的方式来实现学生信息的插入。(7)、删除函数: 通过两个指针变量同时指向一个文件来对文件进行再次赋值来实现删除功能。
2、(8)、查询函数:通过学生的姓名与文件中学生姓名的比较找到该学生后在将该学生的所有信息显示出来(9)、修改函数:通过两个指针变量同时指向一个文件先找到要修改学生,将其信息输入后在重新写入文件。(10)、选择函数:选择所要进行的操作。(11)、退出:退出系统。 四、调试、排错、测试、试运行过程输入学生信息如图:排序如图:插入学生信息如图:查询学生信息五、 源程序主要代码#include stdlib.hstring.hint n=5; /*全局变量*/struct student /*定义结构体数组*/ char num10; char name10; int score;stu3;int me
3、nu_select() /*菜单选择函数*/ char a; do system(cls); printf(t*学生成绩管理系统*ntt1.输入学生成绩ntt2.显示学生成绩ntt3.学生成绩排序ntt4.插入学生记录ntt5.删除学生记录ntt6.查询学生成绩ntt7.修改学生成绩ntt0.退出nt*nn给出你的选择(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) pr
4、intf(cannot open the filen exit(0);学号 姓名 分数 (需要终止输入时请在该行结尾输入n)n for(i=0;i+) scanf(%s %s %d,stui.num,stui.name,&stui.score); fwrite(&stui,sizeof(struct student),1,fp); c=getchar(); if(c=n) break; n=i+1; fclose(fp);pause menu();void display() /*定义显示函数*/rt学号t姓名t分数nin; fread(&t%st%st%dn,stui.num,stui.na
5、me,stui.score);void sort() /*定义排序函数*/ int i,j; struct student temp; printf(cannot open the file: fread(& for(j=0;jn-1;j+)n-1-j; if(stui.scorestui+1.score) temp=stui; stui=stui+1; stui+1=temp;void insert() /*定义插入函数*/ struct student st;a输入要插入学生的信息:学号: scanf(%s,st.num);姓名:,st.name);分数:%d,&st.score); n+
6、;st,sizeof(struct student),1,fp);void delet() /*定义删除函数*/ int i,t; FILE *fp,*fp1; if (fp=fopen(can not open file! if (fp1=fopen(请输入要删除学生的姓名:,name); if(strcmp(stui.name,name)=0) t=i;t;stui,sizeof(struct student),1,fp1); for(i=t+1;该学生信息已删除!nn fclose(fp1);void query() /*定义查询函数*/ char a10;cannot open fil
7、en输入要查询学生的姓名:,a); if(strcmp(stui.name,a)=0)void revise() /*定义修改函数*/请输入要修改学生的姓名:依次输入要修改学生的学号、姓名、分数:,stut.num,stut.name,&stut.score);该学生信息已修改成功!void quite() /*退出*/再见!void menu() /*定义菜单函数*/ switch(menu_select() case 1: input();break; case 2 display();3 sort();4 insert();5 delet();6 query(); revise(); quite();void main() /*主函数*/menu();六、 总结及自我评价经过两个多星期C语言的课程设计,感觉自己收获不少!我做的课程设计内容是编写一个学生成绩管理系统,对于刚开始看到题目的时候不知道从哪开始写。在看到函数调用这一章时,我知道了一个大程序实际上是有多个函数经主函数调用来实现的,这也就是C语言的结构化模块设计思想。七、 参考文献C语言程序设计教程 谭浩强 著 清华大学出版社 C语言课程设计实训教程 石小玲 著 机械工业出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1