1、1,、输入函数2、保存函数3、载入函数4、查询函数5、修改函数6、删除函数3 设计软硬件环境 硬件设备 系统:Microsoft Windows XP Professional 版本 2002 机型:Inter Core2 Duo CPU E8400 3.00GHz 2.99GHz, 2.00 GB内存 软件设备 Microsoft Visual C+ 6.0应用程序调试4 源程序代码清单#includestdlib.hstring.htypedef struct char tihao10; /题号 char timu15; /题目 Data;Data da80;int menu_select
2、() char c; do system(cls); printf(ttt =题库管理系统= nttt nttt 1. 题目的输入 nttt 2. 题目的浏览 nttt 3. 题目信息更改 n /包括删除,插入和更改ttt 4. 题目信息查询 nttt 5. 题目文件操作 n /包括保存,读取和复制ttt 0. 退出管理系统 nttt nttt = nntt请您选择(0-5): c=getchar(); while(c5 return(c- void tihaosort(Data dat,int n) /题号排序 int i,j; Data temp; for(i=0;in;+i) dai=d
3、ati;n-1; for(j=i+1;j0) temp=dai;dai=daj;daj=temp; printf(tt=排序成功=nvoid SaveText(Data dat,int n) /保存函数 int i; FILE *fp; /*指向文件的指针*/ if(fp=fopen(txl.txt,wb)=NULL) /*打开文件,并判断打开是否正常*/ t不能打开文件n /*没打开*/ exit(1); /*退出*/ fprintf(fp,%d,n); /*将记录数写入文件*/rni+) fprintf(fp,%-8s%-6s,dati.tihao,dati.timu); /*将换行符号写
4、入文件*/ fclose(fp);int LoadText(Data dat) /载入函数 int i,n;r)=NULL)不能打开文件n exit(1); fscanf(fp,&n); /*读入记录数*/ fscanf(fp,%s%sn /*按格式读入记录*/ return n; /*返回记录数*/int Charu(Data dat,int n) /插入函数 /*新插入记录信息*/ int i=0,j,k; char s20; dot请插入您的数据nt题号: scanf(t%s,temp.tihao); for(k=0;k=i;j-) /*从最后一个结点开始向后移动一条*/ strcpy(
5、datj+1.tihao,datj.tihao); /*当前记录的题号拷贝到后一条*/ strcpy(datj+1.timu,datj.timu); strcpy(dati.tihao,temp.tihao); /*将新插入记录的题号拷贝到第i个位置*/ strcpy(dati.timu,temp.timu); n+; /*记录数加1*/int Shuru(Data dat,int n) /输入函数 int i=0; char ch; while(ch!=nch!N) /用来判断是否继续输入,datn+i.tihao);,datn+i.timu);nt是否继续添加?(Y/N)t%cch); i
6、+; return (n+i); /其实输入除了N和n的任意键均能实现继续添加的功能 void List(Data dat,int n) /显示函数 =共%d条记录=nn /*格式*/ 题号 题目 nni+) %2st%3sn /*按格式输出*/n system(int Shanchu(Data dat,int n) /删除函数 /*要删除记录的题号*/ int i=0,j;t请输入想删除记录中的题号:%s /*查找要删除的记录题号*/ if(i=n) t题库中没有此题!n return(n); for(j=i;j+) /数据交换 strcpy(datj.timu,datj+1.timu);
7、strcpy(datj.tihao,datj+1.tihao);ttt已经成功删除! return(n-1);void Chazhao(Data dat,int n) /查询函数 int j;tn请选择查询方式:tnt1-题号 nt0-返回 ntn请选择:j); if(j=1) char s20; int i=0;t请输入想查询的题号: while(strcmp(dati.tihao,s)! if(i=n) return; t此题内容nt%5sn,dati.timu); ;void Biangeng(Data dat,int n) /修改函数t请输入想修改的试题的题号: return;,dat
8、i.tihao);nt修改成功!void CopyText() /复制文件函数 char outfile20; /*目标文件名*/ Data temp80; FILE *fp,*fc;rb)=NULL) /*打开记录文件*/tt不能打开文件n /*显示不能打开文件信息*/tt输入目标文件名(例如c:outfile.txt):,outfile); if(fc=fopen(outfile,)=NULL) /*打开目标文件*/ /*读出文件记录数*/ fprintf(fc, /*写入目标文件数*/ /*写入换行符*/,tempi.tihao,tempi.timu); fprintf(fc, /*关闭
9、源文件*/ fclose(fc); /*关闭目标文件*/tt您已成功复制文件!/* 主函数 */void main() int n=0; for(;) switch(menu_select() case 1: n=Shuru(da,n); break; case 2: int k;ttt =题库信息管理系统= nttt nttt 1.显示全部题目 nttt 2.按题号排序信息 nttt 0.返回上一级菜单 nttt nntt请选择:k); switch(k) case 1: /显示信息 List(da,n); case 2: /题号排序 tihaosort(da,n); case 0: ; b
10、reak; case 3: int m;ttt =题库信息管理系统= nttt nttt 1.题库信息的修改 nttt 2.题库信息的删除 nttt 3.题库信息的插入 nttt 0.返回 nttt nttt = nm); switch(m) Biangeng(da,n);t n=Shanchu(da,n); /*删除记录*/ n=Charu(da,n); /插入函数 case 0: ; case 4: nt*在题库中查找记录*n Chazhao(da,n); case 5: int x;ttt 1.题库信息的载入 nttt 2.题库信息的保存 nttt 3.题库信息的复制 nx); swit
11、ch(x) n=LoadText(da);tt您已经成功的将题目导入到题库!tt=题库的保存=n SaveText(da,n);ntt保存成功n CopyText(); /*保存数据*/ ; break;nttt感谢您的使用,再见! exit(0);5 程序运行结果(可截屏程序运行界面。1、主界面显示2、试题的输入3、函数的保存4、试题库的载入5,、试题的浏览与查询6、函数的修改与删除6 设计总结(重点从设计方法、实现技术、功能等几方面总结。通过此次的程序设计课学到了很多,对C语言也有了更好的了解,同时也对C程序的操作和调试也有了进一步的掌握。尽管程序中的一部分是从网上复制过来的,但其中都加入
12、了自己手动修改的元素,并且把一些以前不懂的弄懂了,总之经过了几天的奋斗我们都掌握了很多知识,收获了很多。开学的第一天,老师们就让我们分组进行程序设计,题目发下来顿时怵了,只是几个人在一起商量了一下把程序的大致框架熟悉了一下,但由于是头一次搞,根本不知道从哪些地方着手,原本学到的只是到真正运用的时候才显得那么的苍白,就这样整整一个上午的时间什么进展都没有,我们只是在那里看书,熟悉知识。下午有网了,我们便取巧XX了一个程序进行调试,目的是熟悉分析程序的运转效果,查询整理我们所需要的应用函数,于是才渐渐摸清了我们要进行的方向。首先,我们要进行的是主体框架的设置,为了节省时间,我们拟在一个运行程序里进行删减,从整体中将“肉”剔除,然后得到我们的主体,刚开始不懂得,只知道将哪来的代码胡乱的删去了事,后来发现程序虽然没错了,但只剩下了一副空壳,原有的功能都没有了。 然后,我们商议给这副“骨架”填“肉”,因为这我们也吃了不少口头,拼命看书了解掌握相应函数如save& load的相关函数,网上查找相应函数的用法以及问题解决办法,再不行的我们就请教老师,也因此吃够了BUG的苦头。终于,经历了九九八十一难,我们提前完成了程序的调试,欢呼声我们从中遇到的问题有N+个,我们也学到了很多知识。其一、我们刚开始进行试题输入的时候,总是输入后杳无音讯,查无所踪,无法进行浏览和查询,我们网上查
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1