




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、X X师范大学实验报告课 程C语言课程设计任课老师学 号姓 名院 系 年月至年月注意事项1. 使用C语言,代码已在vs中运行过,可以运行(主要功能都能实现)2. 需求分析,前期设计都没写,请同学们自己完成3. 附带有student.txt文件,将其移动至 F:stu文件夹中,运行程序时可直接选6号指令,从中读取学生信息。如果没有该txt文件(可能会在上传过程中丢失),仍需在F盘下新建stu文件夹,各文件将保存于该文件夹中4. 按word格式输出尚未设计好,有兴趣可自己完成5. 按excel格式输出,完成后需自行调整相应列宽(拉宽),使内容美观6. 从下一页开始,复制余下全文,粘贴即可运行#in
2、 clude#define M 30/班级总人数,暂定 30,可修改#defi ne N 3/课程成绩门数,暂定 3,可修改int in putstu(struct stude nt stu, int m, int n);void prin stu(struct stude nt stu, int m, int n);int sorts no (struct stude nt stu, int m);int sortage(struct stude nt stu, int m);int sortmark(struct stude nt stu,i nt sm, int m, int n);vo
3、id prin sort(struct stude nt stu, int m, int n);int writefile(struct stude nt stu, FILE *fp, int m, int n); int readfile(struct stude nt stu, FILE *fp, int m, int n);int fprin word(struct stude nt stu, FILE *fp, int m, int n);int fprin excel(struct stude nt stu, FILE *fp, int m, int n);int seachs no
4、 (struct stude nt stu,lo ng sno, int m,i nt n);int seachs name(struct stude nt stu,char sn ame, int m, int n); int des no (struct stude nt stu, l ong sno, int m);int des name(struct stude nt stu, char sn ame, int m);int cuti n( struct stude nt stu, int m, int n);struct stude ntint turn; long sno;cha
5、r sn ame20;char sgrade10;char sbirth10; int smarkN;void mai n()int i = 0;int con1 = 0;int con2 = 0;long sno;char sn ame20; FILE *fp = NULL;struct stude nt stuM;for (i = 0; i M; i+)stui.turn = -1; do prin tf(nn* n);printf(” n*学生信息管理系统* nn);prin tf( *请按提示输入相应命令:*nn);printf(” 1键盘输入所有学生的基本信息n);printf(”
6、2屏幕输出所有学生的基本信息n);printf(” 3子菜单:按一定顺序对学生进行排序n);printf(” 4按顺序屏幕输出学生信息n);printf(” 5保存学生信息(二进制文件)n);printf(” 6从上次保存的二进制文件中读取学生信息n);printf(” 7子菜单:将学生信息保存为文本文档(人工阅读)n);printf(” 8子菜单:对单个学生的插入删除查询修改n);printf(” -1 退出系统 n);scan f(%d, &con 1);switch (con1)case 1:prin tf(n* 注意! * n);printf(继续进行输入会覆盖原数据! ! n);n
7、);prin tf(第一次使用本软件或需重新写信息请继续:printf( 1继续 n);printf( -1返回 n);scan f(%d, &con 2);if (con2 = 1)in putstu(stu, M, N);break;case 2:pri nstu(stu, M, N); break; case 3:do prin tf(n* n);prin tf( 1按学号顺序进行排序n);printf(” 2按年龄从小到大排序n);printf( 3按总成绩由高到低排序n);printf( -1 返回上一级菜单n”);scan f(%d, &con 2);switch (con2) c
8、ase 1:sorts no (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(stdi n); while (con2 != -1);break;case 4:pri nsort(stu, M, N); break;case 5:writefile(stu, fp, M, N); break;case 6:readfile(stu,
9、fp, M, N); break;case 7:prin tf(n* n);printf(” 1将学生信息输出为printf(” 2将学生信息输出为printf(” 3将学生信息输出为txt 文档,路径:F:stustudent.txtn); word 文档,路径:F:stustudent.doc n);excel 文档,路径:F:stustudent.xls n);printf(” -1返回上一级菜单n”);scan f(%d, &con 2);switch (con2)case 1:break;case 2:fprin word(stu, fp, M, N); break;case 3:
10、break; case 8:dofprinexcel(stu, fp, M, N); break;prin tf(n*nn);prin tf( 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”); scan f(%10ld, &sno);seachs no (stu, sno, M, N); b
11、reak; case 2:printf(请输入单个学生姓名:n); scan f(%20s,s name);seachs name(stu, sn ame, M, N); break;case 3:printf(请输入单个学号:n);scan f(%10ld, &sn o);des no (stu, sno, M);break;case 4:printf(”请输入单个学生姓名:n);sca nf(%s, sn ame);des name(stu, sn ame, M);break;case 5:cut in (stu, M, N);break;default:printf(二级指令错误,请重新
12、输入!n);break; while (con2 != -1);case -1:printf(感谢使用本系统!n”); break;default:printf( 一级命令输入错误,请重试 ”);fflush(stdi n);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);scan f(%10ld%
13、20s%10s%10s,&stui.s no,& stui.s name,&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 prin stu(struct stude nt stu, int m, int n) int i = 0;int j = 0;printf(*n);printf(学生基本信息如下:n);printf( 学号成绩3n);while (i m)if (stui
14、.s no = 0)i+;con ti nue;prin tf(%10ld%20s%10sstui.sbirth);for (j = 0; j n; j+)姓名班级%10s, stui.s no,出生年月 成绩1成绩2stui.s name, stui.sgrade,printf( %d , stui.smarkj);prin tf(n);i+;/按学号顺序进行排序int sorts no (struct stude nt stu,i nt m)int i = 0;int j = 0;int s;long sn oM;for (i = 0; i M; i+) sn oi = stui.s no
15、;for (i = 0; i m; i+)for (j = i+1; j sn oj)s = sn oj;snoj = sn oi;sno i = s;for (i = 0; i m; i+)for (j = 0; j m; j+)if (stuj.s no = sn oi)stuj.turn = i; return i;/按年龄对学生进行排序;int sortage(struct stude nt stu, int m)/按总成绩由高到低排序int sortmark(struct stude nt stu,i nt sm, int m,i nt n) int i = 0;int j = 0;
16、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.tur n = i; return i; /按顺序屏幕输出 void prin sort(struct stude nt stu,i nt m,i nt n) int i = 0;int j = 0;int k = 0;prin tf(
17、n*n);printf(按排序,学生基本信息如下:n);printf(”学号姓名班级出生年月 成绩1成绩2成绩3n);while (k m)if (stui.s no = 0)con ti nue;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);prin tf(n);k+;/写数据进二进制文件int writefile(stru
18、ct student stu,FILE *fp,int m,int n) int i = 1;fp = fope n(f:stustude nt.txt, wb);if (fp = NULL)printf(打开文件失败!n ”);exit(0);fwrite( &stu0,sizeof(struct stude nt),m,fp);i = fclose(fp);return i; /从二进制中读取学生信息int readfile(struct stude nt stu, FILE *fp, int m, int n) int i = 1;fp = fope n( f:stustude nt.t
19、xt, rb);if (fp = NULL)printf(打开文件失败!n ”);exit(0);fread(&stu0, sizeof(struct stude nt), m, fp);i = fclose(fp);return i;II将学生信息写入 word文档,保存于 F:stustudent.docint fprin word(struct stude nt stu, FILE *fp, int m, int n)int i = 0;int j = 0;fp = fope n( F:stustude nt.doc,w);if (fp = NULL)printf(文件打开失败!);ex
20、it(O);while (i m)if (stui.s no = 0);con ti nue;fprintf(fp,%10ld %20s%10s%10s, stui.sno, stui.sname, stui.sgrade, stui.sbirth);for (j = 0; j n; j+)fprin tf(fp, %d, stui.smarkj);prin tf(n ”);i+;fclose(fp);return i;/将学生信息写入 excel文档,保存于F:stustudent.xlsint fprin excel(struct stude nt stu, FILE *fp, int m
21、, int n)int i = 0;int j = 0;char t = t;char lin20=成绩;char str420;strcpy(str0, 学号);strcpy(str1,姓名);strcpy(str2, 班级);strcpy(str3,生日);fp = fope n(F:stustude nt.xls, w);if (fp = NULL)printf(文件打开失败!”);exit(O);fprintf(fp, %s%c%s%c%s%c%s, strO, t, str1, t, str2, t, str3);for (i = 0; i n; i+)fprintf(fp, %c%
22、s%d, t, li n, i+1);fprintf(fp, n);i = 0;while (i m)if (stui.s no = -1)con ti nue;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+)fprin tf(fp, %c%d, t,stui.smarkj);fprin tf(fp,n);i+;fclose(fp);return i;/按学号查询单个学生int seachs no (struct stude
23、 nt stu,lo ng sn o,i nt m,i nt n)int i = 0;int j = 0;for (i = 0; i m; i+)if (stui.s no = sno)printf(按学号查询到的学生基本信息如下:n”);prin tf(学号姓名班级出生年月 成绩1成绩2 成绩3n);printf(%10ld%20s%10s%10s, stui.sno, stui.sname, stui.sgrade,stui.sbirth);for (j = 0; j n; j+)prin tf(”%d , stui.smarkj);prin tf(n);break;return i;/按姓名查询单个学生int seachs name(struct stude nt stu,char sn ame, int m, int n)int i = 0;int j = 0;int s = -1;for (i = 0; i m; i+)s = strcmp(stui.s name, sn ame);if (s = 0)printf(按姓名查询到的学生基本信息如下:n);prin tf(学号姓名班级出生年月 成绩1成绩2 成绩3n);printf(%1Old%20s%10s%10s, st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车安全检验政策解读
- 地下水水文地质工程地质研究重点基础知识点
- 连片土地转租合同协议
- 车辆购买赠送协议书范本
- 运输木架租借合同协议
- 员工试用期劳动合同协议书
- 产业园区租赁经营协议书
- 投资咨询服务合同协议
- 旧房改造协议书
- 旅游酒店连锁管理服务合同
- 大学英语四级考试2024年12月真题(第一套)Part I Writing
- 洗煤厂应急救援预案
- 超星尔雅学习通《移动互联网时代的信息安全与防护(南京师范大学)》2025章节测试附答案
- DB31∕701-2020 有色金属铸件单位产品能源消耗限额
- 统编版语文六年级下册古诗词诵读10《清平乐》
- 社群营销的年度工作策略计划
- 微弱的光亮(2024年山东烟台中考语文试卷记叙文阅读试题)
- 国际贸易居间协议样本
- 2024爱德华EDWARDS消防报警系统产品技术手册
- 2024-2025学年新教材高中数学 第4章 概率与统计 4.3 统计模型 4.3.1 第2课时 相关系数与非线性回归说课稿 新人教B版选择性必修第二册
- 某电站中控室搬迁施工方案
评论
0/150
提交评论