版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计基础课程设计设计题目:学生成绩查询系统专业: 班级: 姓名: 学号: 指导老师: 目 录一、课程设计目的与要求3二、详细设计4三、程序清单和执行结果9四、调试与测试23五、结语24一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。2. 课程设计要求 设计一个简易学生成绩记录簿设计,其中包括:姓名,学号,C语言成绩; 具体功能: 1系统以菜单方式工作 2. 创建学生成绩信息并以
2、磁盘文件保存; 3. 读取磁盘文件并显示输出所有学生的成绩; 4. 查询学生成绩 (1)按学号查询成绩 (2)学号姓名查询成绩 5添加成绩记录; 6修改指定姓名或学号的学生的成绩并可存盘; 7显示输出60分以下、6079、8089、90分以上各分数段的学生信息。二、详细设计1、数据结构设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct studentint num; /*学号*/char name10; /*姓名*/flo
3、at score3; /*成绩*/2函数说明1.主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。2.其他部分功能函数包括(1) 将学生成绩信息保存为文件void save(); 算法思想:定义指向文件的指针变量;输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;将存有学生成绩信息的结构体数组信息依次保存到文件中。 (2) 学生成绩信息录入函数void input()算法思想:依次录入结构体数组中所包含的各个成员;直到输入的结构体成员中信息为4,数据输入结束;返回实际录入的学生成绩信息数。(3)从文件中读出学生成绩信息void output();
4、 算法思想:定义指向结构体变量的指针和指向文件的指针;输入文件的路径,打开文件,若不能打开文件给出提示信息;将文件中的信息依次读出,最后结构体的指针为NULL。3函数设计(1)主菜单函数main()功能:函数返回值为整数,代表所选的菜单项 int main ()printf(" * n");printf(" § §n"); printf("§<<<<<<<<<<<<<<<<<<<<<<
5、>>>>>>>>>>>>>>>>>>>>>>>>>>>>> §n");printf(" § >>欢迎进入学生成绩记录系统<< §n");printf(" §>>>>>>>>>>>>>>>>>>>>>
6、;>>>>>><<<<<<<<<<<<<<<<<<<<<<<< §n");printf(" § §n");printf("§【1】- 创建学生成绩信息 §n"); printf(" § §n");printf("§【2】- 显示所有学生成绩信息 §n
7、"); printf("§ §n");printf("§【3】- 添加学生成绩信息 §n");printf(" § §n");printf("§【4】- 查询学生成绩信息 §n"); printf(" § §n"); printf("§【5】- 修改学生的信息 §n"); printf(" § §n");pr
8、intf("§【6】- 按分数段显示学生的信息 §n"); printf(" § §n"); printf("§【0】- 退出 §n");printf(" § §n");printf(" * n");printf(" 请输入相应菜单编号: ");(2) 我负责编写的程序A.添加学生信息 void Addstudent() FILE *fp;struct student s;fp=fopen(&qu
9、ot;stu.dat","ab"); if(fp=fopen("stu.dat","ab")=NULL) printf("File open error!n"); else printf("请输入所增加学生的 学号 姓名 c语言成绩:n");scanf("%d",&s.num ); scanf("%s",);scanf("%f",&s.score0);fwrite (&s,sizeof(st
10、ruct student),1,fp);fclose(fp);/*关闭文件*/printf("写入成功!n"); /end function Addstudent;B.修改学生成绩void modify() int number,i;printf("请输入要修改信息的学生学号:"); scanf("%d",&number); for(i=0;i<n;i+)if(number=studi.num) break;/*查找判断*/ if(i<n)/*查找判断*/ printf("请输入修改后的学生的信息:&qu
11、ot;);printf("n请输入学生的c语言成绩:"); scanf("%f",&studi.score0); save(); else printf("没找到该学生的信息n"); system("paues");system("cls");C.查询学生成绩void namecheck(void);void scorecheck(void);void searchmenu()printf(" * 欢迎进入学生成绩查询系统 * n");printf("* 1
12、-按姓名查询成绩 * n");printf("* 2-按学号查询成绩 * n");printf("* 3-返回上一层 * n");printf("* 4-退出 * n");printf(" * n");printf(" 请输入相应菜单编号: ");int m;scanf("%d",&m);switch(m)case 1: namecheck(); printf("n"); system("PAUSE"); system
13、("CLS"); break;case 2: scorecheck(); printf("n"); system("PAUSE"); system("CLS"); break;case 3: main();break;case 4: exit(0); break;void namecheck() char name10;printf("按照姓名查询请按n");printf("n请输入姓名:");scanf("%s",&name);printf(&q
14、uot;查询结果n");printf("学号 姓名 c语言成绩n");if(strcpy(,name) printf("%d %s %.2fn",studi.num,,studi.score0);void scorecheck() int b;printf("按照学号查询请按n");printf("n请输入学号:");scanf("%d",&b);printf("查询结果n");printf("学号 姓名 c
15、语言成绩n");for(i=0;i<n;i+)if(studi.num =b) printf("%d %s %.2fn",studi.num,,studi.score0); 三、程序清单和执行结果1.头文件 #include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct studentint num; /*学号*/char name10; /*姓名*/float score3; /*
16、成绩*/*以下是函数原型*/ void save(void); void input(void); void output(void); void modify(); /*修改信息*/void searchmenu(void); /*查询信息*/ void namecheck(void); /*按姓名查询*/ void scorecheck(void); /*按学号查询*/ void Addstudent(); /*添加信息*/void sclsearch(); /*成绩按分数段显示*/2. 函数源程序代码与运行结果1函数源程序代码#include<stdio.h>#include
17、<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct studentint num;char name10;float score3;stud100;int i,choose,a,t=0;long int num;int main () void save(void);void input(void);void output(void); void modify();void searchmenu(void);void Addstudent();void sclsearch();while
18、(1)printf(" * n");printf(" § §n");printf(" §<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>
19、>>§n");printf(" § >>欢迎进入学生成绩记录系统<< §n");printf(" §>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<
20、<<<<<< §n");printf(" § §n");printf(" §【1】- 创建学生成绩信息 §n"); printf(" § §n");printf(" §【2】- 显示所有学生成绩信息 §n"); printf(" § §n");printf(" §【3】- 添加学生成绩信息 §n");p
21、rintf(" § §n");printf(" §【4】- 查询学生成绩信息 §n"); printf(" § §n"); printf(" §【5】- 修改学生的信息 §n"); printf(" § §n");printf(" §【6】- 按分数段显示学生的信息 §n"); printf(" § §n"); pri
22、ntf(" §【0】- 退出 §n");printf(" § §n");printf(" * n");printf(" 请输入相应菜单编号: ");scanf("%d",&a);switch(a)case 1:input(); save();break;case 2:output();printf("n");system("PAUSE");system("CLS");break; case
23、 3:Addstudent();printf("n"); system("PAUSE");system("CLS"); break;case 4:searchmenu();printf("n");system("PAUSE");system("CLS");break;case 5:modify();printf("n");system("PAUSE");system("CLS");break;case 6:sclse
24、arch();printf("n"); system("PAUSE");system("CLS"); break;case 0:exit(0);default: ;return 0;void save()FILE *fp;if (fp=fopen("stu.dat","wb")=NULL)/*以只写的方式打开文件*/printf("无法打开文件!n");return ;for(i=0;i<n;i+)if (fwrite (&studi,sizeof(struct
25、 student),1,fp)!=1)/*写入字节为1的信息在文件中*/printf("文件写入错误!n");fclose(fp);/*关闭文件*/void input()/录入学生成绩int i;char a;for(i=0;i<n;i+) printf("n 请输入学生成绩信息:n"); printf("n请依次输入 学号、姓名、c语言成绩:n"); scanf("%d%s%f",&studi.num,,&studi.score0); printf("输入:y
26、(继续),n(终止)!n");fflush(stdin);scanf("%c",&a);if(a='n' | a='N')break;n=i+1;void Addstudent() FILE *fp;struct student s;fp=fopen("stu.dat","ab"); if(fp=fopen("stu.dat","ab")=NULL) printf("File open error!n"); else prin
27、tf("请输入所增加学生的 学号 姓名 c语言成绩:n");scanf("%d",&s.num ); scanf("%s",);scanf("%f",&s.score0);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/*关闭文件*/printf("写入成功!n"); /end function Addstudent;void output()int i;/float s;FILE *fp; if(fp=
28、fopen("stu.dat","rb")=NULL)printf("cannot open filen");exit(0);printf("n学号 姓名 c语言成绩n");for(i=0;fread(&studi,sizeof(struct student),1,fp)=1;i+)printf("%d %10s % 10.2fn",studi.num,,studi.score0);fclose(fp);n=i;void modify() int number,i;p
29、rintf("请输入要修改信息的学生学号:"); scanf("%d",&number); for(i=0;i<n;i+)if(number=studi.num) break;/*查找判断*/ if(i<n)/*查找判断*/ printf("请输入修改后的学生的信息:");printf("n请输入学生的c语言成绩:"); scanf("%f",&studi.score0); save(); else printf("没找到该学生的信息n"); sy
30、stem("paues");system("cls");void namecheck(void);void scorecheck(void);void searchmenu()printf(" * 欢迎进入学生成绩查询系统 * n");printf("* 1-按姓名查询成绩 * n");printf("* 2-按学号查询成绩 * n");printf("* 3-返回上一层 * n");printf("* 4-退出 * n");printf(" *
31、 n");printf(" 请输入相应菜单编号: ");int m;scanf("%d",&m);switch(m)case 1: namecheck(); printf("n"); system("PAUSE"); system("CLS"); break;case 2: scorecheck(); printf("n"); system("PAUSE"); system("CLS"); break;case 3:
32、main();break;case 4: exit(0); break;void namecheck() char name10;printf("按照姓名查询请按n");printf("n请输入姓名:");scanf("%s",&name);printf("查询结果n");printf("学号 姓名 c语言成绩n");if(strcpy(,name) printf("%d %s %.2fn",studi.num,,studi.s
33、core0);void scorecheck() int b;printf("按照学号查询请按n");printf("n请输入学号:");scanf("%d",&b);printf("查询结果n");printf("学号 姓名 c语言成绩n");for(i=0;i<n;i+)if(studi.num =b) printf("%d %s %.2fn",studi.num,,studi.score0);void sclsearch()int i;
34、printf("90分以上:n"); printf("学号 姓名 c语言成绩n");for(i=0;i<n;i+)if(studi.score0>=90) printf("%d %s %.2fn",studi.num,,studi.score0);printf("8089:n"); printf("学号 姓名 c语言成绩n");for(i=0;i<n;i+)if(studi.score0>=80&&studi.score0<90)
35、 printf("%d %s %.2fn",studi.num,,studi.score0);printf("7079:n"); printf("学号 姓名 c语言成绩n");for(i=0;i<n;i+)if(studi.score0>=70&&studi.score0<80) printf("%d %s %.2fn",studi.num,,studi.score0);printf("6069:n"); printf("学号 姓名 c语言成绩n");for(i=0;i<n;i+)if(studi.score0>=6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保责任事项承诺书(5篇)
- 物流仓储运营分析报告模板
- 我的成长经历写人作文(9篇)
- 财务报表分析模板财务决策支持
- 售后服务反馈与问题解决流程表
- 创新技术突破保障承诺书6篇
- 2025年全科医学相关专业知识试题库(含参考答案)
- 行政办公用品采购与管理规范
- 企业文件管理标准化流程与模板
- 《初中数学竞赛题解题技巧指导》
- 第8课《网络新世界》第一课时-统编版《道德与法治》四年级上册教学课件
- 具身智能在智能工厂生产流程中的应用可行性分析
- 餐饮连锁品牌营销推广策略案例分析
- 机关纪委监督检查课件
- 新能源车电机热管理技术进展
- 2025电力安规考试题库及答案
- 三减三健知识培训内容课件
- 地下车库安全知识培训课件
- 恒丰银行笔试题库及答案
- 诺如病毒感染防控知识培训
- 口腔门诊简介宣传
评论
0/150
提交评论