已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
_X X 师 范 大 学 实 验 报 告课 程 C语言课程设计 任课老师 学 号 姓 名 院 系 _年_月至_年_月 注意事项1. 使用C语言,代码已在vs中运行过,可以运行(主要功能都能实现)2. 需求分析,前期设计都没写,请同学们自己完成3. 附带有 student.txt 文件,将其移动至 F:stu 文件夹中,运行程序时可直接选 6号指令,从中读取学生信息。如果没有该txt文件(可能会在上传过程中丢失),仍需在F盘下新建stu文件夹,各文件将保存于该文件夹中4. 按word格式输出尚未设计好,有兴趣可自己完成5. 按excel格式输出,完成后需自行调整相应列宽(拉宽),使内容美观6. 从下一页开始,复制余下全文,粘贴即可运行#include#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 stu,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 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; char 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( * 请按提示输入相应命令: *nn); printf( 1 键盘输入所有学生的基本信息n); printf( 2 屏幕输出所有学生的基本信息n); printf( 3 子菜单:按一定顺序对学生进行排序n); printf( 4 按顺序屏幕输出学生信息n); printf( 5 保存学生信息(二进制文件)n); printf( 6 从上次保存的二进制文件中读取学生信息n); printf( 7 子菜单:将学生信息保存为文本文档(人工阅读)n); 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); 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(%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; case 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); printf( -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( 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(请输入单个学生姓名: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: 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 = 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, &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.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 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;for (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;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 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 = 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: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.sname, 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=成绩;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, 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, %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);printf(%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);printf(%10ld %20s%10s %10s , stui.sno, stui.sname, st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无锡货运从业资格证考试题及答案
- 2024年高中语文第三单元11城南旧事节选练习含解析粤教版必修5
- 煤矿月工作总结
- 湘师大版道德与法治七年级上册1.1.1《迈上成长新台阶》听课评课记录
- 工厂委托看护协议模板
- 医院院感年度工作计划
- 九年级生物教学工作计划
- 房地产包销和分销房地产包销协议书范本
- 钩机租赁合同范本
- 苏科版数学七年级下册12.3《互逆命题》听评课记录2
- 2024年贵州省中考理科综合试卷(含答案)
- 无人机技术与遥感
- 燃煤电厂超低排放烟气治理工程技术规范(HJ 2053-2018)
- 临床叙事护理概述与应用
- TSG-T7001-2023电梯监督检验和定期检验规则宣贯解读
- 冠脉介入进修汇报
- 护理病例讨论制度课件
- 养阴清肺膏的临床应用研究
- 大型集团公司企业内部控制规章制度和流程总汇编
- 恩施自治州建始东升煤矿有限责任公司东升煤矿矿产资源开发利用与生态复绿方案
- PDCA提高卧床患者踝泵运动的执行率
评论
0/150
提交评论