版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.程序设计报告( 2012 /2013学年 第 二 学期)题目:学生籍贯信息记录簿专业学生姓名班级学号指导教师指导单位日期评评分项优秀良好中等差;.遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评语评分等级教师签名:年月日备 评分等级有五种:优秀、良好、中等、及格、不及格注学生籍贯信息记录簿;.一、课题内容和要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能:( 1)创建信息链表并以磁盘文件保存;( 2)读取磁盘文件并显示输出所有学生的籍贯
2、信息;( 3)按学号或姓名查询其籍贯;( 4)按籍贯查询并输出该籍贯的所有学生;( 5)能添加、删除和修改学生的籍贯信息;( 6)显示输出江苏籍和非江苏籍学生的信息并可分别存盘。二、需求分析模块 1:显示基本信息(创建信息链表并以磁盘文件保存,读取磁盘文件)模块 2:输出籍贯信息(显示输出所有学生的籍贯信息)模块 3:根据条件查询(按学号或姓名查询其籍贯,按籍贯查询)模块 4:输出学生信息(输出该籍贯的所有学生)模块 5:基本信息管理(添加、删除和修改学生的籍贯信息)模块 6:分别显示存盘(显示输出江苏籍和非江苏籍学生的信息并可分别存盘)模块 7:结束程序 ( 退出系统 )三、概要设计;.四、
3、源程序代码;.#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#define MAX 100/宏定义最多输入人数typedef structchar num50;char name50;char address50;Student;/定义了一个新的结构体类型StudentStudent stuMAX;/定义结构体型数组int n;/定义一个全局变量,表示第n 个学生int t;int s=0;void Input();/输入信息void Display();
4、/2.读取最初输入的信息并显示void Readfile();/读取文件 student.dat 的信息void Modify(int i);/5.修改第 i 个学生的姓名和籍贯void Save1();/将最初输入的内容存档到student.dat 文件中void Save2();/传送格式化输出到 student.dat 文件void Dis();/6.显示输出江苏,非江苏学生信息void Find(int i);/3.按学号或姓名查询籍贯void Finds();/4按籍贯查找学生void main()char choose;doif(s=0);.int M=35;printf(&quo
5、t;欢迎大家进入南京邮电大学籍贯管理系统n");s+;printf("*n");printf("1.输入信息并存档 n");printf("2.读取信息并显示 n");printf("3.按学号或姓名查询籍贯 n");printf("4.按籍贯查询学生 n");printf("5.修改 ( 删除 ) 指定姓名或学号的学生的姓名和籍贯n");printf("6. 显示输出江苏,非江苏学生信息 n"); printf("*n");
6、 scanf("%s",&choose);switch(choose)case '1':Input();Save1();break;case '2':Readfile();Display();break;case '3':Readfile();Find(1);break;case '4':Readfile();Finds();break;case '5':Readfile();Find(0);break;case '6':Readfile();Dis();break;de
7、fault:printf("输入错误,请重新输入:n");while(1);void Save2(int t)/传送格式化输出到student.dat文件中;.FILE* fp;fp=fopen("student.dat","w"); /以只写的方式打开student.dat文件fprintf(fp,"%s %s %sn",stut.num,,stut.address);/格式化输出:学号姓名地址fclose(fp);void Input()/输入信息n=0;doprintf("请输入第
8、 %d个学生信息 , 输入 Finish 结束输入 ( 输入格式 : 学号 姓名 籍贯 )n",n+1); scanf("%s",stun.num); if(strcmp(stun.num,"Finish")=0) break;scanf("%s",);scanf("%s",stun.address);n+;while(1);void Save1()/将最初输入的内容存档到student.dat文件中int i;FILE* fp;if(fp=fopen("student.dat
9、","a+")=NULL)/以读写的方式打开student.dat文件fp=fopen("student.dat","w");/以只写的方式打开student.dat文件for(i=0;i<n;i+);.fprintf(fp,"%s%s%sn",stui.num,,stui.address);/用格式化输出函数输出内容到student.datfclose(fp);void Display()/2.读取信息并显示int i;printf("学号姓名籍贯 :n");
10、for(i=0;i<n;i+)printf("%5s %5s %5sn",stui.num , ,stui.address);void Find(int f)/3.按学号或姓名查询籍贯int i;int choose,k;char ans50;/定义字符串型数组,用于查找doprintf("1.按学号查询 n");printf("2.按姓名查找 n");printf("3.返回主菜单 n");scanf("%d",&choose);if(choose=1)prin
11、tf("请输入学号 n");.scanf("%s",ans);k=-1;for(i=0;i<n;i+)if(strcmp(ans,stui.num)=0)k=i;break;if(k=-1)printf("不存在该学生信息 n");elseif(f=1)printf("%s %s %sn",stuk.num,,stuk.address);elseModify(k);/执行修改第 t 个学生的姓名和籍贯的函数else if(choose=2)printf("请输入姓名 n"
12、);scanf("%s",ans);k=-1;for(i=0;i<n;i+)if(strcmp(ans,)=0)k=i;break;if(k=-1)printf("不存在该学生信息 n");.elseif(f=1)printf("%s %s %sn",stuk.num,,stuk.address);elseModify(k);/执行修改第 t 个学生的姓名和籍贯的函数else return;while(1);void Modify(int t)/4.修改第 t 个学生的姓名和籍贯int cho
13、ose;int i;printf("1.删除 n");printf("2.修改 n");scanf("%d",&choose);if(choose=1)for(i=t;i<n-1;i+)stui=stui+1;n-;elseprintf(">>>>请重新输入该学生信息 :n");.scanf("%s %s %s",stut.num,,&stut.address);Save2(t);/传送修改过的格式化输出到student.dat文件
14、中void Readfile()/读取文本文件 student.dat的信息FILE *fp;if(fp=fopen("student.dat","r")=NULL)return;/以 只 读 的 方 式 打 开student.dat文件n=0;while(!feof(fp)/判断文件指针是否指向文件结束处fscanf(fp,"%s%s%s",stun.num,,&stun.address);/利用fscanf()函数输入信息n+;fclose(fp);void Dis()/5.显示输出江苏,非江苏学生信息i
15、nt i;printf("江苏学生 :n");printf("学号姓名籍贯 n");for(i=0;i<n;i+)if(strcmp(stui.address,"江苏 ")=0)/比较字符串大小printf("%s %5s %5sn",stui.num,,stui.address);.printf("n");printf("n");printf("非江苏学生 :n");printf("学号姓名籍贯 n");for
16、(i=0;i<n;i+)if(strcmp(stui.address,"江苏 ")!=0)printf("%s %7s %5sn",stui.num,,stui.address);void Finds()int i,k=-1;int choose;char ans50;printf("请输入籍贯 n");scanf("%s",ans);for(i=0;i<n;i+)if(strcmp(ans,stui.address)=0)k=1;printf("%s %s %sn",stui.num,,stui.address);if(k=-1);.printf("无此省份学生信息 n");return;五、测试数据及其结果分析截取了调试时的图片,基本符合要求,但然后一些不人性化的地方值得修改。截图如下:此处为录入信息;.此处为显示和查询信息;.;.;.此处为查询和修改(删除)信息以及显示江苏和非江苏籍贯学生六、调试过程中的问题1. 在录入信息的时候, 可能会填错信息, 在按了回车之后,不能马上回去修改,只能全部录入完之后再选择修改(删除) ,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业行政单位审计制度
- 内部审计及风险管理制度
- 基金业风控制度
- 内部审计风险防控制度
- 医院政府采购审计制度
- 呆帐核销专项审计制度
- 脑外伤头痛患者的音乐疗法
- 小额贷款风控制度
- 小学控烟培训教育制度
- 员工消防培训教育制度
- 神州数码集团在线测评题
- 掺混肥料生产管理制度
- 2026年安徽财贸职业学院单招综合素质笔试备考试题附答案详解
- 2026内蒙古事业单位招聘第一阶段减少招聘人数岗位(公共基础知识)测试题附答案
- 胆总管结石课件
- 入孵合同解除协议
- 数据出境安全协议
- 护士交接班礼仪
- 2025年10月自考05677法理学试题及答案含评分参考
- 2025年专升本旅游管理历年真题汇编试卷及答案
- 2026年辽宁医药职业学院单招职业适应性测试必刷测试卷及答案1套
评论
0/150
提交评论