版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 面向过程课程设计学生籍贯信息记录簿软件院(系)别 信息工程系 班 级 电气102班 课 程 设 计 任 务 书题 目 学生籍贯信息记录簿 系 (部) 信息工程系 专 业 电气类 班 级 102班 8 月 29 日至 9 月 2 日 共 1 周指导教师(签字) 系 主 任(签字) 年 月 日1、 设计内容及要求 编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能: (1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的籍贯信息; (3)按学号或姓名查询其籍贯; (4)按籍贯查询并输出该籍贯的所有学生; (5)能添加、删除和修改学生的籍贯信息;(6)显
2、示输出四川籍和非四川籍学生的信息并可分别存盘。2、 设计原始资料 1、链表基础知识 2、文件处理基础知识三、设计完成后提交的文件和图表1计算说明书部分数据库设计分析#include#include#include#define len sizeof(struct student)struct studentchar num21;char name256;char address562;struct student *next;int n;/n为全局变量,本文件模块中各函数均可使用它struct student *creat()/定义函数。此函数返回一个指向链表头的指针struct studen
3、t *head;struct student *p1,*p2;n=0;p1=p2=(struct student *)malloc(len);printf(请依次输入学生的信息,输入学号为零时退出。n);printf(请输入学生的学号:n);gets(p1-num);printf(请输入学生的姓名:n);gets(p1-name);printf(请输入学生的地址:n);gets(p1-address);head=null;while(p1-num0!=0)/当学号是0时,退出n=n+1;if(n=1)head=p1;elsep2-next=p1;p2=p1;p1=(struct student
4、 *)malloc(len);/开辟动态存储区,把起始地址付给p1printf(请输入学生的学号:n);gets(p1-num);/输入其他学生的学号和成绩printf(请输入学生的姓名:n);gets(p1-name);printf(请输入学生的地址:n);gets(p1-address);p2-next=null;system(cls);return(head);void print_save(struct student head)file *fp;struct student *p;fp=fopen(d:stduent.txt,ab+);/打开文件if(fp=null)printf(文
5、件无法打开n);exit(0);printf(n现在,有 %d 条记录,分别是:n,n);p=&head;if(&head!=null)doprintf(n学号:);puts(p-num);printf(n姓名:);puts(p-name);printf(n地址:);puts(p-address);fseek(fp,0,2);if(fwrite(p,sizeof(struct student),1,fp)!=1)printf(文件无法写入n);p=p-next;while(p!=null);fclose(fp);/关闭文件getchar();system(cls);struct student
6、 *pt;/定义一个student类型的指针char comp3;/comp为保存输入的变量int main()/一个调用这个creat函数的main函数 cvoid showview();/界面显示void name_surch();/按姓名查找void num_surch();/按学号查找void nativeplace_surch();/按籍贯查找void delete_shiyan();/删除学生信息void modification_shiyan();/修改学生信息void showszechwan_no();/分别显示四川和非四川籍学生并非别存盘void fileout(struc
7、t student *p);/文件输出void print_save(struct student head);while(1)showview();if(strnicmp(comp,1,3)=0)/strnicmp比较两个字符串的函数pt=creat();/函数返回链表第一个结点的地址else if(strnicmp(comp,6,3)=0)print_save(*pt);else if(strnicmp(comp,3,3)=0)/输出文件内容fileout(pt);else if(strnicmp(comp,2,3)=0)name_surch();else if(strnicmp(comp
8、,7,3)=0)num_surch();else if(strnicmp(comp,9,3)=0)/modification();modification_shiyan();/修改学生信息else if(strnicmp(comp,4,3)=0)/delete();delete_shiyan();else if(strnicmp(comp,5,3)=0)showszechwan_no();else if(strnicmp(comp,8,3)=0)nativeplace_surch();else if(strnicmp(comp,0,3)=0)break;elseprintf(输入错误!n);g
9、etchar();system(cls);return 0;void fileout(struct student *p)file *fp;printf(现在有%d条记录,分别是:n,n);fp=fopen(d:stduent.txt,rb);/0x00429af0if(fp=null)printf(文件无法打开n);exit(0);rewind(fp);while(!feof(fp)fread(p,sizeof(struct student),1,fp);/从文件中读取一块数据printf(%-15s,p-num);printf(%-15s,p-name);printf(%-15s,p-ad
10、dress);puts(n);fclose(fp);getchar();system(cls);void showview()/主菜单printf(*n);printf(*欢迎进入学生籍贯信息记录簿*n);printf(*n);printf(*1、cin添加 *n);printf(*2、namesurch按名字搜索 *n);printf(*3、fileout显示文件中的信息 *n);printf(*4、delete删除学生信息 *n);printf(*5、showszechwan_no分别显示四川和非四川籍学生并非别存盘 *n);printf(*6、save保存当前信息 *n);printf(
11、*7、numsurch按学号搜索 *n);printf(*8、nativeplace安籍贯查询 *n);printf(*9、modif修改学生信息 *n);printf(*0、break退出 *n);printf(*n);printf(*请输入您的选择¥:);gets(comp);system(cls);/清屏void name_surch()file *fp;char surch256;printf(请输入要查询的人的名字:n);gets(surch);fp=fopen(d:stduent.txt,r);/0x00429af0if(fp=null)printf(不能打开文件n);exit(0
12、);rewind(fp);/指向文件的开始while(!feof(fp)/查找student a;while(!feof(fp)fread(&a,sizeof(student),1,fp);/从p指向的文件读入一组数据if(!strcmp(,surch)printf(%s,%s,%sn,a.num,,a.address);break;if(!feof(fp)return;elseprintf(查无此人n);fclose(fp);getchar();system(cls);void num_surch()file *fp;char surch256;printf(请输入要
13、查询的人的学号:);gets(surch);fp=fopen(d:stduent.txt,rb);/0x0042aab8if(fp=null)printf(error);exit(0);rewind(fp);/指向文件的开始while(!feof(fp)/查找student a;while(!feof(fp)fread(&a,sizeof(student),1,fp);/从p指向的文件读入一组数据if(!strcmp(a.num,surch)printf(%s,%s,%sn,a.num,,a.address);break;if(!feof(fp)return;elseprintf(
14、查无此人n);fclose(fp);getchar();system(cls);void nativeplace_surch()/按籍贯查询file *fp;char surch256;printf(请输入要查询的人的籍贯:n);gets(surch);fp=fopen(d:stduent.txt,rb);/0x00429af0if(fp=null)printf(文件打不开n);exit(0);rewind(fp);/指向文件的开始student a;while(!feof(fp)fread(&a,sizeof(struct student),1,fp);/从p指向的文件读入一组数据if(!s
15、trcmp(a.address,surch)/相当于strcmp(a.address,surch)=0printf(%s,%s,%sn,a.num,,a.address);if(!feof(fp)return;fclose(fp);getchar();system(cls);void showszechwan_no()/分别显示四川和非四川籍学生并非别存盘file *fp;file *sfp;/指向四川籍学生文件sfp=fopen(d:四川stduent.txt,wb);if(sfp=null)printf(不能打开文件n);exit(0);file *ffp;/指向非四川籍学生文
16、件ffp=fopen(d:非四川stduent.txt,wb);if(ffp=null)/ffp=0x0042aad8printf(不能打开文件n);exit(0);fp=fopen(d:stduent.txt,rb);/0x00429af0if(fp=null)printf(不能打开文件n);exit(0);rewind(fp);/指向文件的开始printf(四川籍学生信息:n);student a;while(!feof(fp)fread(&a,sizeof(struct student),1,fp);/从p指向的文件读取一组数据if(!strcmp(a.address,四川)|!strc
17、mp(a.address,sichuan)|!strcmp(a.address,sichuansheng)|!strcmp(a.address,四川省)printf(%s,%s,%sn,a.num,,a.address);if(fwrite(&a,sizeof(struct student),1,sfp)!=1)printf(文件无法写入n);break;elseif(fwrite(&a,sizeof(struct student),1,ffp)!=1)printf(文件无法写入n);fclose(fp);fclose(ffp);fclose(sfp);printf(非四川籍学生信
18、息:n);ffp=fopen(d:非四川stduent.txt,rb);if(null=ffp)printf(文件打不开n);while(!feof(ffp)/此处有问题?fread(&a,sizeof(struct student),1,ffp);/从p指向的文件读取一组数据if(a.num=0)/ffp=0x0042aab8break;printf(%s,%s,%sn,a.num,,a.address);fclose(ffp);getchar();system(cls);/*编写写入部分,完成修改,删除,四川与非四川籍分别保存的部分freab与fwrite用法的详细区别阐述*/
19、void delete_shiyan()/删除学生信息file *fp;file *fptemp;char surch256;printf(请输入要删除的人的学号:n);gets(surch);fp=fopen(d:stduent.txt,rb);/0x00429af0fptemp=fopen(d:temp.txt,wb);if(fp=null)printf(文件打不开n);exit(0);student a;while(!feof(fp)mark: fread(&a,sizeof(struct student),1,fp);/从p指向的文件读入一组数据fp=0x0042aab8if(0=st
20、rcmp(a.num,surch)char p;printf(%s,%s,%sn,a.num,,a.address);printf(如果以上信息与你要删除的人的信息对应,请输入(y/n):n);scanf(%c,&p);if(y=p|y=p)goto mark;if(strcmp(a.num,surch)!=0)fwrite(&a,sizeof(struct student),1,fptemp);fclose(fp);fclose(fptemp);file *aa;file *bb;aa=fopen(d:stduent.txt,wb);bb=fopen(d:temp.txt,rb)
21、;while(!feof(bb)fread(&a,sizeof(struct student),1,bb);fwrite(&a,sizeof(struct student),1,aa);getchar();system(cls);void modification_shiyan()/修改学生信息file *fp;file *fptemp;struct student a;char surch256;printf(请输入要修改的人的学号:n);gets(surch);fp=fopen(d:stduent.txt,rb);/0x0042aab8fptemp=fopen(d:temp.txt,wb)
22、;if(fp=null)printf(文件打不开n);exit(0);rewind(fp);/指向文件的开始while(!feof(fp) fread(&a,sizeof(struct student),1,fp);/从p指向的文件读入一组数据fp=0x0042aab8if(0=strcmp(a.num,surch)char p;printf(%s,%s,%sn,a.num,,a.address);printf(如果以上信息与你要修改的人的信息对应,请输入(y/n):n);scanf(%c,&p);if(y=p|y=p)printf(请输入要修改成的信息(学号、姓名、籍贯):n);
23、getchar();printf(学号:);gets(a.num);printf(姓名:);gets();printf(地址:);gets(a.address);fwrite(&a,sizeof(struct student),1,fptemp);fclose(fp);fclose(fptemp);file *bb;file *pp;bb=fopen(d:stduent.txt,wb);/0x0042aab8pp=fopen(d:temp.txt,rb);while(!feof(pp)fread(&a,sizeof(struct student),1,pp);fwrite(&a,s
24、izeof(struct student),1,bb);getchar();getchar();system(cls);2图纸部分:程序流程图四、进程安排(1)第一天完成创建信息链表并以磁盘文件保存,读取磁盘文件并显示输出所有学生的籍贯信息的功能; (2)第二天完成按学号或姓名查询其籍贯,按籍贯查询并输出该籍贯的所有学生的功能; (3)第三天完成显示输出四川籍和非四川籍学生的信息并可分别存盘的功能并修饰;(4)第四天完成能添加、删除和修改学生的籍贯信息的功能并完善;5、 主要参考资料 1 马安鹏.visual c+程序设计导学。北京:清华大学出版社,20022 谭浩强,c程序设计(第四版)2
25、电子书籍. visual c+技术内幕(第四版).网址:3 beck zaratian.microsoft visual visual c+ 6.0程序员指南.希望图书创作室译.北京:北京希望电脑公司出品,19984richard c.leinecker,tom archer. visual c+ 6 宝典.张艳,张谦译.北京:电子工业出版社,19995 李强,贾云霞. visual c+项目开发实践.北京:中国铁道出版社,20046 郑莉,董渊,张瑞丰.c+语言程序设计.2003.7 h.m.deitel,p.j.deitel. small c+ how to program.2006.成
26、绩 评 定 表口试(答辩)成绩报告成绩总评成绩目 录1课程设计概述1 1.1学生籍贯信息记录簿软件功能概述11.2visual c+6.0概述12学生籍贯信息记录簿软件总体设计12.1学生籍贯信息记录簿软件总体设计思想12.2总体设计流程图2 2.3 学生籍贯信息记录簿菜单界面3 2.4 录入学生信息界面4 2.5 清屏实现5 2.6 查找界面7 2.7 删除界面9 2.8 分别显示四川籍学生与非四川籍学生界面10 2.9 修改界面103.0 退出界面11 3 设计体会及今后的改进意见114 参考文献121 课程设计概述1.1 visual c+6.0功能概述visual c+是微软公司的重要
27、产品之一, 是一种功能强大行之有效的可视化编程工具。它提供了mfc类库,使用户可以方便的开发自己想实现的功能。visual c+6.0的主要特点:(1)自动化和宏功能。(2)可以灵活地定制工具栏和菜单。(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。(4)支持internet连接。(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。(6)在工作区内可以包含多个并列的工程文件。(7)可以在对话框中使用wizardbar将程序同可视化元素联系起来。(8)find in file命令支持两个独立的输出窗格,可以保存上一次搜索的结果。这些新特性可以更好地利用visu
28、al c+开发工具进行windows应用程序开发。1.2 字符统计软件功能概述 (1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的籍贯信息; (3) 按学号或姓名查询其籍贯; (4)按籍贯查询并输出该籍贯的所有学生; (5)能添加、删除和修改学生的籍贯信息; (6)显示输出四川籍和非四川籍学生的信息并可分别存盘。2 学生籍贯信息记录簿软件总体设计2.1 学生籍贯信息记录簿软件总体设计思想学生籍贯信息记录簿软件的功能为统计每个学生的信息包括:学号、姓名、籍贯。学生籍贯信息记录簿软件的功能模块有:(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按ente
29、r键进入该功能。(2)接受用户输入的信息,并以磁盘文件保存。(3)读取磁盘文件并显示输出所有学生的籍贯信息。(4)按学号或姓名查询其籍贯。(5)按籍贯查询并输出该籍贯的所有学生。(6)能添加、删除和修改学生的籍贯信息。(7)显示输出四川籍和非四川籍学生的信息并可分别存盘。2.2 总体设计流程图图所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。选择1-5并按enter键进行操作。如选择出错,系统将提出警告,并提醒用户重新进行选择。2.3 学生籍贯信息记录簿菜单界面 图32 字符串累加统计界面如上图所示,该功能实现显示主菜单。选择1按enter键进入添加功能,程序提
30、醒用户输入字符串,输入完毕后按enter键将完成统计并显示结果,同时程序将再次提醒用户进行新的选择。2.4 录入学生信息界面图33 字符串重新统计界面如上图所示,该功能实现录入学生信息并保存到相应的文件。程序提醒用户输入姓名、学号、地址,输入完毕后分别按enter键,程序将结果保存入相应的文件中,保存完后,程序将再次提醒用户进行新的输入。当输入结束时,输入学号为零就会自动退出。2.5 清屏实现图341 清屏前程序运行界面当每一个操作结束时,系统都会自动清屏,并返回主菜单,以保证屏幕整洁。使用户能拥有一个好的心情使用此软件。输入3 ,按enter键,查看文件中所存储的所有信息。图342 查看文件
31、中数据的界面 如上图所示,该功能将显示指定文件中保存的所有数据。按enter键将实现清屏并返回主菜单的功能。2.6 查找界面2.6.1 按学号查找图351 按学号查找功能界面2.6.2按姓名查找图352按姓名查找界面2.6.3按籍贯查询如上图所示,按照提示输入相应的学号、姓名、籍贯等信息,然后按enter键,就会显示你想要查找的信息。2.7 删除界面按照上图中的提示,输入要删除的人的学号,按enter键,将显示你要删除的人的信息,如果和你要删除的人的信息相同输入y(不分大小写)按enter键,将删除其信息。删除完成后显示文件中的所有成员,如上图2.8分别显示四川籍学生与非四川籍学生界面 2.9修改界面按提示操作,如果现实的学生的信息是你要修改的,就输入y。再输入要改成的详细信息,按enter键保存、退出。如上图,修改后的学生信息3.0退出界面图361 选择退出功能界面图362 退出界面如上图所示,该功能将关闭正在运行的程序。选择5按enter键实现该功能,按任意键关闭程序。设计体会及今后的改进意见为了提高我们的实践能力,让我们学以致用,能灵
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《机械设计基础》-试卷8
- 《机床电气控制》试卷13
- 吉林艺术学院《透视学》2021-2022学年第一学期期末试卷
- 吉林艺术学院《改革开放史》2021-2022学年第一学期期末试卷
- 2024年公园绿化经营合同范本
- 吉林师范大学《艺术实践与创作》2021-2022学年第一学期期末试卷
- 2022年河北省公务员录用考试《行测》真题及答案解析
- 2024年大客车出租租赁合同范本
- 绞肉机买卖合同协议书范文
- 2022年公务员多省联考《申论》真题(重庆二卷)及答案解析
- 外事实务智慧树知到期末考试答案2024年
- 中考道德与法治复习策略指导
- 人工智能儿童科普
- 产品经济性设计与分析报告
- 基于核心素养初中数学跨学科教学融合策略
- 智慧能源管理平台建设项目解决方案
- RFJ 006-2021 RFP型人防过滤吸收器制造与验收规范(暂行)
- 2024年高中语文学业水平过关测试四-名句名篇默写积累过关训练(全国通用)学生版
- 内蒙古的特色美食
- 招投标-招投标管理
- 售后工程师热水系统维护培训
评论
0/150
提交评论