




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、X X 师 范 大 学 实 验 报 告课 程 C语言课程设计 任课老师 学 号 姓 名 院 系 _年_月至_年_月 注意事项1. 使用C语言,代码已在vs中运行过,可以运行(主要功能都能实现)2. 需求分析,前期设计都没写,请同学们自己完成3. 附带有 student.txt 文件,将其移动至 F:stu 文件夹中,运行程序时可直接选 6号指令,从中读取学生信息。如果没有该txt文件(可能会在上传过程中丢失),仍需在F盘下新建stu文件夹,各文件将保存于该文件夹中4. 按word格式输出尚未设计好,有兴趣可自己完成5. 按excel格式输出,完成后需自行调整相应列宽(拉宽),使内容美观6. 从
2、下一页开始,复制余下全文,粘贴即可运行#include<stdio.h>#define M 30 /班级总人数,暂定30,可修改#define N 3 /课程成绩门数,暂定3,可修改 int inputstu(struct student stu, int m, int n);void prinstu(struct student stu, int m, int n);int sortsno(struct student stu, int m);int sortage(struct student stu, int m);int sortmark(struct student st
3、u,int sm, int m, int n);void prinsort(struct student stu, int m, int n);int writefile(struct student stu, FILE *fp, int m, int n);int readfile(struct student stu, FILE *fp, int m, int n);int fprinword(struct student stu, FILE *fp, int m, int n);int fprinexcel(struct student stu, FILE *fp, int m, int
4、 n);int seachsno(struct student stu,long sno, int m,int n);int seachsname(struct student stu,char sname, int m, int n);int desno(struct student stu, long sno, int m);int desname(struct student stu, char sname, int m);int cutin(struct student stu, int m, int n); struct student int turn; long sno; cha
5、r sname20; char sgrade10; char sbirth10; int smarkN; void main() int i = 0; int con1 = 0; int con2 = 0; long sno; char sname20; FILE *fp = NULL; struct student stuM; for (i = 0; i < M; i+) stui.turn = -1; do printf("nn*n"); printf(" n * 学生信息管理系统 *nn"); printf(" * 请按提示输入相应
6、命令: *nn"); printf(" 1 键盘输入所有学生的基本信息n"); printf(" 2 屏幕输出所有学生的基本信息n"); printf(" 3 子菜单:按一定顺序对学生进行排序n"); printf(" 4 按顺序屏幕输出学生信息n"); printf(" 5 保存学生信息(二进制文件)n"); printf(" 6 从上次保存的二进制文件中读取学生信息n"); printf(" 7 子菜单:将学生信息保存为文本文档(人工阅读)n"
7、;); printf(" 8 子菜单:对单个学生的插入删除查询修改n"); printf(" -1 退出系统n"); scanf("%d", &con1); switch (con1) case 1: printf("n* 注意! *n"); printf(" 继续进行输入会覆盖原数据!n"); printf(" 第一次使用本软件或需重新写信息请继续:n "); printf(" 1 继续n"); printf(" -1 返回n"
8、;); scanf("%d", &con2); if (con2 = 1) inputstu(stu, M, N); break; case 2:prinstu(stu, M, N); break; case 3: do printf("n*n"); printf(" 1 按学号顺序进行排序n"); printf(" 2 按年龄从小到大排序n"); printf(" 3 按总成绩由高到低排序n"); printf(" -1 返回上一级菜单n"); scanf(&quo
9、t;%d", &con2); switch (con2) case 1: sortsno(stu, M); con2 = 0; break; case 2: /sortage(stu, M); break; case 3: int smM; sortmark(stu, sm, M, N); break; case -1:break; default: printf("二级命令输入错误,请重试!n"); fflush(stdin); while (con2 != -1); break; case 4:prinsort(stu, M, N); break; c
10、ase 5:writefile(stu, fp, M, N); break; case 6:readfile(stu, fp, M, N); break; case 7: printf("n*n"); printf(" 1 将学生信息输出为txt文档,路径:F:stustudent.txtn"); printf(" 2 将学生信息输出为word文档, 路径:F:stustudent.doc n"); printf(" 3 将学生信息输出为excel文档, 路径:F:stustudent.xls n"); print
11、f(" -1 返回上一级菜单n"); scanf("%d", &con2); switch (con2) case 1: break; case 2: fprinword(stu, fp, M, N); break; case 3: fprinexcel(stu, fp, M, N); break; break; case 8: do printf("n*nn"); printf(" 1 按学号查询单个学生n"); printf(" 2 按姓名查询单个学生n"); printf(&quo
12、t; 3 按学号删除单个学生n"); printf(" 4 按姓名删除单个学生n"); printf(" 5 插入单个学生信息n"); printf("-1 返回主菜单n"); scanf("%d", &con2); switch (con2) case 1: printf("请输入单个学号:n"); scanf("%10ld", &sno); seachsno(stu, sno, M, N); break; case 2: printf("
13、;请输入单个学生姓名:n"); scanf("%20s",sname); seachsname(stu, sname, M, N); break; case 3: printf("请输入单个学号:n"); scanf("%10ld",&sno); desno(stu, sno, M); break; case 4: printf("请输入单个学生姓名:n"); scanf("%s", sname); desname(stu, sname, M); break; case 5:
14、cutin(stu, M, N); break; default: printf("二级指令错误,请重新输入!n"); break; while (con2 != -1); case -1:printf("感谢使用本系统!n"); break; default: printf("一级命令输入错误,请重试"); fflush(stdin); break; while (con1 != -1); /输入学生的基本信息int inputstu(struct student stu,int m,int n)int i = 0;int j =
15、0;printf("请按说明输入学生信息:n");while (i < m)printf("请输入第%d个学生的学号,姓名,班级,出生日期:n", i + 1);scanf("%10ld%20s%10s%10s", &stui.sno, &stui.sname, &stui.sgrade, &stui.sbirth);for (j = 0; j < n; j+)printf("请输入第%d个学生的第%d门成绩n",i+1,j+1);scanf("%d"
16、, &stui.smarkj);i+;return i;/屏幕输出学生信息void prinstu(struct student stu, int m, int n)int i = 0;int j = 0;printf("*n");printf("学生基本信息如下:n");printf(" 学号 姓名 班级 出生年月 成绩1 成绩2 成绩3n");while (i < m) if (stui.sno = 0)i+;continue;printf("%10ld %20s%10s %10s ", stui
17、.sno, stui.sname, stui.sgrade, stui.sbirth);for (j = 0; j < n; j+)printf(" %d ", stui.smarkj);printf("n");i+;/按学号顺序进行排序int sortsno(struct student stu,int m)int i = 0;int j = 0;int s;long snoM;for (i = 0; i < M; i+)snoi = stui.sno;for (i = 0; i < m; i+)for (j = i+1; j <
18、; m; j+)s = snoi;if (s >snoj)s = snoj;snoj = snoi;snoi = s;for (i = 0; i < m; i+)for (j = 0; j < m; j+)if (stuj.sno = snoi)stuj.turn = i;return i;/按年龄对学生进行排序;int sortage(struct student stu, int m)/按总成绩由高到低排序int sortmark(struct student stu,int sm, int m,int n)int i = 0;int j = 0;int s = 0;fo
19、r (i = 0; i < m; i+)smi = 0;for (i = 0; i < m; i+)for (j = 0; j < n; j+)smi = smi + stui.smarkj;for (i = 0; i < m; i+)for (j = i + 1; j < m; j+)s = smi;if (s <smj)s =j;sms = 0;stus.turn = i;return i;/按顺序屏幕输出void prinsort(struct student stu,int m,int n)int i = 0;int j = 0;int k = 0;
20、printf("n*n");printf("按排序,学生基本信息如下:n");printf(" 学号 姓名 班级 出生年月 成绩1 成绩2 成绩3n");while (k < m)if (stui.sno = 0)continue;for (i = 0; i < m; i+)if (stui.turn = k)printf("%10ld %20s%10s %10s ", stui.sno, stui.sname, stui.sgrade, stui.sbirth);for (j = 0; j <
21、n; j+)printf(" %d ", stui.smarkj);printf("n");k+;/写数据进二进制文件 int writefile(struct student stu,FILE *fp,int m,int n)int i = 1;fp = fopen("f:stustudent.txt", "wb");if (fp = NULL)printf("打开文件失败!n");exit(0);fwrite(&stu0,sizeof(struct student),m,fp);i
22、= fclose(fp);return i;/从二进制中读取学生信息int readfile(struct student stu, FILE *fp, int m, int n)int i = 1;fp = fopen("f:stustudent.txt", "rb");if (fp = NULL)printf("打开文件失败!n");exit(0);fread(&stu0, sizeof(struct student), m, fp);i = fclose(fp);return i;/将学生信息写入word文档,保存于 F
23、:stustudent.doc int fprinword(struct student stu, FILE *fp, int m, int n)int i = 0;int j = 0;fp = fopen("F:stustudent.doc","w");if (fp = NULL)printf("文件打开失败!");exit(0);while (i < m)if (stui.sno = 0);continue;fprintf(fp,"%10ld %20s%10s%10s", stui.sno, stui.s
24、name, stui.sgrade, stui.sbirth);for (j = 0; j < n; j+)fprintf(fp," %d ", stui.smarkj);printf("n");i+;fclose(fp);return i;/将学生信息写入excel文档,保存于 F:stustudent.xls int fprinexcel(struct student stu, FILE *fp, int m, int n)int i = 0;int j = 0;char t = 't'char lin20="成绩&q
25、uot;char str420;strcpy(str0, " 学号");strcpy(str1, " 姓名");strcpy(str2, " 班级");strcpy(str3, " 生日");fp = fopen("F:stustudent.xls", "w");if (fp = NULL)printf("文件打开失败!");exit(0);fprintf(fp, "%s%c%s%c%s%c%s", str0, t, str1, t,
26、str2, t, str3);for (i = 0; i < n; i+)fprintf(fp, "%c %s%d", t, lin, i+1);fprintf(fp, "n");i = 0;while (i < m)if (stui.sno = -1)continue;fprintf(fp, "%10ld%c%20s%c%10s%c%10s", stui.sno,t, stui.sname,t, stui.sgrade,t, stui.sbirth);for (j = 0; j < n; j+)fprintf(fp
27、, "%c%d", t,stui.smarkj);fprintf(fp,"n");i+;fclose(fp);return i;/按学号查询单个学生int seachsno(struct student stu,long sno,int m,int n)int i = 0;int j = 0;for (i = 0; i < m; i+)if (stui.sno = sno)printf("按学号查询到的学生基本信息如下:n");printf(" 学号 姓名 班级 出生年月 成绩1 成绩2 成绩3n");pri
28、ntf("%10ld %20s%10s %10s ", stui.sno, stui.sname, stui.sgrade, stui.sbirth);for (j = 0; j < n; j+)printf(" %d ", stui.smarkj);printf("n");break;return i;/按姓名查询单个学生int seachsname(struct student stu,char sname, int m, int n)int i = 0;int j = 0;int s = -1;for (i = 0; i < m; i+)s = strcmp(stui.sname, sname);if (s = 0)printf("按姓名查询到的学生基本信息如下:n");printf(" 学号 姓名 班级 出生年月 成绩1 成绩2 成绩3n")
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版语文必修鸿门宴课文课件上
- 2025年经济法复习方向试题及答案实践
- 自考行政管理考试工具试题及答案
- 公司财务风险评估
- 药师解析能力试题及答案集合
- 行政法学在社会发展的作用试题与答案
- 文化创新思维及管理试题及答案
- 中医内科学-肺痨课件
- 行政管理2025年考试高效试题及答案
- 第10节 概率与函数、数列
- 2025年中国空调清洗市场竞争格局及行业投资前景预测报告
- 蓄水池水池清洗方案
- 空冷器、换热器设备试压方案
- 燃气管道及设施保护方案
- 企业绿色发展中的创新实践研究
- 2025中卫辅警考试题库
- 湖北省武汉市2025届高三下学期二月调研考试数学试卷
- 汉语语气词的语用功能分析论文
- 光伏材料与器件-深度研究
- 高考英语阅读理解题干、选项及近五年高频词汇
- 广东省华附、省实、广雅、深中2025届高三四校联考语文试题与答案
评论
0/150
提交评论