版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件课程设计报告书
院系名称:电子工程学院学生姓名:李群专业名称:光信息班
级:1103学号:05113096时间:2021年4月11日至2021年4月20日实验题目一、实验目的让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自行设计并实现一个较为完整的小型管理信息系统或小型应用系统的设计与开发。其主要目的是使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平。要求编程时采用结构体、指针、文件等复杂数据结构存储组织数据。二、实验内容1通过键盘输入某位学生的学生证信息。学生证包含的信息请参看自己的学生证;2给定学号,显示某位学生的学生证信息;3学生信息的添加4显示全部的学生证信息;5给定某位学生的学号,修改该学生的学生证信息;6给定某位学生的学号,删除该学生的学生证信息;7提供一些统计各类信息的功能。统计学生数,学生男女人数;8能够对年龄进行升序和降序排序;9用文件的形式将录入的数据进行存储,并从其中读取数据。三、需求分析根据题目要求,学生信息要从文本文件中存取,所以本程序要提供读写文件,显示,统计,查寻,修改记录,保存文件等操作,此外,还要提供键盘式选择菜单实现功能。四、概要设计分析整个系统,根据上面的需求分析,可以将这个系统的设计分为如下几大模块:读取数据,输出数据,添加数据,输入数据、修改数据、查询数据、删除数据、统计数据,排序数据,保存数据。五、详细设计及运行结果输出模块查询模块修改模块六、调试情况,设计技巧及体会1、本次设计选取内容比较简单;结构比较明晰,涉及内容比较全面,程序采用比较基础的C语言,整个程序中午够多复杂函数。2、本次设计让我体会到:牢固的程序设计基础知识是设计成功的前提,正确的学习态度是设计成功的基础,知识与实践的有效结合是设计成功的保障;认真学,认真练是程序课程的核心。七、源程序清单(略,详见电子版实验报告)格式:内容部分用宋体、小四号字,代码用CourierNew字体、五号。A4打印纸。#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMAX20#definePRIprintf("学号%d\n姓名%s\n院系%s\n专业%s\n性别%s\n年龄%d\n",stdi[i].num,stdi[i].name,stdi[i].yuanxi,stdi[i].zhuanye,stdi[i].xingbie,stdi[i].nianling)structstude_nt{intnum;charname[10];charyuanxi[15];charzhuanye[15];charxingbie[10];intnianling;}stdi[MAX],t;intsum;/*保存测试*/voidsave_message(intsum){FILE*fp;inti;if((fp=fopen("1.txt","wb"))==NULL){printf("读文件错误!\n");return;}for(i=0;i<sum;i++)if(fwrite(&stdi[i],sizeof(structstude_nt),1,fp)!=1)printf("写文件错误!\n");fclose(fp);}/*输入模块*/voidinput_message(){inti=0,s=MAX;system("cls");printf("\n\n录入学生信息\n");printf("当输入0结束输入");do{printf("\n第%d个学生信息",i+1);printf("\n学号");fflush(stdin);scanf("%d",&stdi[i].num);if(stdi[i].num==0)break;printf("\n姓名");fflush(stdin);scanf("%s",stdi[i].name);printf("\n院系");fflush(stdin);scanf("%s",stdi[i].yuanxi);printf("\n专业");fflush(stdin);scanf("%s",stdi[i].zhuanye);printf("\n性别");fflush(stdin);scanf("%s",stdi[i].xingbie);printf("\n年龄");fflush(stdin);scanf("%d",&stdi[i].nianling);i++;printf("\n按任意键继续下一个!");fflush(stdin);getchar();system("cls");}while(1);sum=i;printf("\n--%d学生信息输入完毕!--\n",sum);printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}read_message()/*读取信息*/{FILE*fp;inti=0;system("cls");if((fp=fopen("1.txt","rb"))==NULL){printf("\n\n*****暂时还没有任何信息*****\n");printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return0;}while(feof(fp)!=1){fread(&stdi[i],sizeof(structstude_nt),1,fp);if(stdi[i].num==0)break;elsei++;}sum=i;fclose(fp);returnsum;}/*输出模块*/voidoutput_message(){inti;system("cls");for(i=0;i<sum;i++){printf("第%d学生信息\n",i+1);PRI;}printf("\n--%d学生读取信息完毕!--\n",i);printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}voidinsert_message()/*添加信息*/{inti,x;system("cls");printf("请输入要添加的学生人数\n");fflush(stdin);scanf("%d",&x);i=sum;while(i<sum+x){printf("\n第%d个学生信息\n",i-sum+1);printf("\n学号");fflush(stdin);scanf("%d",&stdi[i].num);printf("\n姓名");fflush(stdin);scanf("%s",stdi[i].name);printf("\n院系");fflush(stdin);scanf("%s",stdi[i].yuanxi);printf("\n专业");fflush(stdin);scanf("%s",stdi[i].zhuanye);printf("\n性别");fflush(stdin);scanf("%s",stdi[i].xingbie);printf("\n年龄");fflush(stdin);scanf("%d",&stdi[i].nianling);i++;if(i<sum+x){printf("\n按任意键继续下一个!");fflush(stdin);getchar();system("cls");}}sum=i;printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}voiddel_message()/*删除信息*/{inti,x,m,n,del_me[MAX];system("cls");printf("请输入要删除的学生人数\n");fflush(stdin);scanf("%d",&x);if(x>sum){printf("删除人数超出已存人数范围");printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}for(m=0;m<x;m++){printf("请输入要删除的第%d个学生学号\n",m+1);fflush(stdin);scanf("%d",del_me+m);}for(m=0;m<x;m++){for(i=0;i<sum;i++)if(del_me[m]==stdi[i].num)break;if(i==sum){printf("删除的第%d个学生不存在\n",m+1);if(m+1<x){printf("\n按任意键继续!");fflush(stdin);getchar();system("cls");}}if(i!=sum){PRI;printf("你确定要删除第%d个学生信息吗:删除1,不删除2\n",m+1);scanf("%d",&n);if(n==1){while(i<sum){stdi[i]=stdi[i+1];i++;}sum--;}}}printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}voidrevise_message(){inty,i,x,m,n,del_me[MAX];system("cls");printf("请输入要修改的学生人数\n");fflush(stdin);scanf("%d",&x);if(x>sum){printf("要修改人数超出已存人数范围");printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}for(m=0;m<x;m++){printf("请输入要修改的第%d个学生学号\n",m+1);fflush(stdin);scanf("%d",del_me+m);}for(m=0;m<x;m++){for(i=0;i<sum;i++)if(del_me[m]==stdi[i].num)break;if(i==sum){printf("修改的第%d个学生不存在\n",m+1);if(m+1<x){printf("\n按任意键继续!");fflush(stdin);getchar();fflush(stdin);}}if(i!=sum){PRI;printf("你确定要修改第%d个学生信息吗:修改1,不修改2\n",m+1);fflush(stdin);scanf("%d",&n);fflush(stdin);if(n==1){do{printf("请输入修改信息");printf("按要求选择您所要的操作\n");printf("1----修改学生姓名\n");printf("2----修改学生院系\n");printf("3----修改学生专业\n");printf("4----修改学生性别\n");printf("5----修改学生年龄\n");printf("0----结束此次修改\n");fflush(stdin);scanf("%d",&y);system("cls");switch(y){case1:printf("\n姓名");fflush(stdin);scanf("%s",stdi[i].name);break;case2:printf("\n院系");fflush(stdin);scanf("%s",stdi[i].yuanxi);break;case3:printf("\n专业");fflush(stdin);scanf("%s",stdi[i].zhuanye);break;case4:printf("\n性别");fflush(stdin);scanf("%s",stdi[i].xingbie);break;case5:printf("\n年龄");fflush(stdin);scanf("%d",&stdi[i].nianling);break;case0:break;}}while(y!=0);}}}printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}voidinquire_message()/*查询信息*/{inti,x,m,n,del_me[MAX];system("cls");printf("请输入要查询的学生人数\n");fflush(stdin);scanf("%d",&x);if(x>sum){printf("要查询人数超出已存人数范围");printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}for(m=0;m<x;m++){printf("请输入要查询的第%d个学生学号\n",m+1);fflush(stdin);scanf("%d",del_me+m);}for(m=0;m<x;m++){for(i=0;i<sum;i++)if(del_me[m]==stdi[i].num)break;if(i==sum){printf("第%d个修改的学生不存在\n",m+1);if(m+1<x){printf("\n按任意键继续!");fflush(stdin);getchar();system("cls");}}if(i!=sum)PRI;}printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}voidcount_message()/*tongji信息*/{intb,g;b=g=sum=0;system("cls");while(1){if(stdi[sum].num==0)break;elseif(strcmp(stdi[sum].xingbie,"boy")==0)b++;elseg++;sum++;}printf("总学生人数%d\n男生人数%d\n女生人数%d\n",sum,b,g);printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}voidsort_message()/*paixu信息*/{inti,j,sum=0;system("cls");while(1){if(stdi[sum].num==0)break;sum++;}for(i=0;i<sum-1;i++)for(j=i+1;j<sum;j++)if(stdi[i].nianling>stdi[j].nianling){t=stdi[i];stdi[i]=stdi[j];stdi[j]=t;}for(i=0;i<sum;i++)PRI;printf("\n按任意键返回主菜单!");fflush(stdin);getchar();system("cls");return;}voidmain(){inti,x;sum=read_message();/*for(i=0;i<MAX;i++)stdi[i].num=0;*/do{printf("按要求选择您所要的操作\n");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("0----结束此次工作\n");fflush(stdin);scanf("%d",&x);switch(x){case1:input_message();break;case2:inquire_message();break;case3:del_message();break;case4:insert_message();break;case5:revise_message();break;case6:count_message();break;case7:sort_message();break;case8:output_message();break;case0:break;}save_message(sum);printf("\n-以上信息已保存!-(文件名:1.tx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 圆周接力课件教学课件
- 2024乙丙双方关于智能家居系统安装与维护的合同
- 2024保险合同保险标的及属性规定
- 2024年司机配驾汽车租赁合同标准版
- 2024年度工程建设项目融资担保合同
- 2024年居住区绿化托管协议
- 2024年广告制作委托合同
- 2024年展览厅知识产权保护合同
- 2024国有土地使用权合同解释国有土地使用权收购合同
- 2024年度汽车销售业绩奖励合同
- 采购计划制定
- 双塔精馏正常操作双塔精馏正常操作
- 振荡指标MACD(波段操作精解)
- 2024年四川航空股份有限公司招聘笔试参考题库含答案解析
- 医学检验专业职业规划书
- 喘证诊疗方案临床疗效评价总结分析
- 慈善协会各项管理制度
- 外研版小学英语六年级上每课时教学反思
- 语法讲解一般将来时课件
- 品牌独家代理合作协议
- 食材、副食品配送方案技术标
评论
0/150
提交评论