1、自C语言程序设计 题库管理系统程序设计基础课程设计报告班 级: 计算机科学与技术13班 姓 名: 杨广宇 指导教师: 胡宏涛 完成日期: 01年月6日 (题目)1. 设计题目与要求(简要介绍课程设计题目内容与要求。)1设计内容要求输入试题(仅限选择题和填空题)基本信息,实现试题浏览.,查询,修改功能,并将数据保存至文本文件。2要求功能完善,界面友好。2.算法设计与描述(要求有相关流程图) .1算法设计与描述(描述算法设计、实现过程。)1.提供可操作的主菜单:输出主菜单,用户可根据菜单来选择操作。根据客户输入的选项来运行不同的功能,运行不同的函数。试题信息的录入函数:按照提示输入题的题号,题目内
2、容,并提示用户是否继续录入,每输入一个记录,全局变量n就自增,最后最为函数的返回值返回。.保存试题信息函数:将文件的所有数据通过fprntf来写入指定文本文档,完成后关闭文件,没有返回值4. 载入试题信息函数:通过fopen函数打开指定文件,通过fcn来读取文件里的数据,最后返回记录数,避免了每次打开时都要输入数据的麻烦。5. 查询记录函数:细分为按题号,题目两种方式来进行查询记录,并能对查询记录不存在进行提示。遍历所有结构体找出符合的输出。 6. 修改记录函数:首先判断用户要修改的试题序号是否存在,进行相应的系统提示,然后遍历所有记录找出符合的,按照提示依次进行修改项目,返回记录值不变(没增
3、加也没减少)。7. 删除记录函数:首先判断用户要删除的试题序号是否存在,进行相应的系统提示,然后遍历所有记录找出符合的删除,冰讲后面的所有数据向前移动一个位置,记录数减一并返回。 .2 主要流程图(用NS图描述。),、输入函数2、保存函数3、载入函数4、查询函数5、修改函数、删除函数3 设计软硬件环境 硬件设备 系统:Microsoft WidwXP Professin 版本 20 机型:nter Coe2 Do CPU E .00GHz 2.99GH, 2.00 GB内存 软件设备 Micrsof Visal C+.应用程序调试 源程序代码清单ncludestdo.h #include#in
4、clude ypedf stct ar ti0; /题号 ch imu15; /题目 Data;Dta a80; t menuselct() a c; do stm(ls); prinf(t =题库管理系统= n); print(tt n); printf(ttt . 题目的输入 n);rintf(tt 2. 题目的浏览 n); pintf(ttt 3. 题目信息更改 n); /包括删除,插入和更改 prtf(tt 4. 题目信息查询 n); pr( 5. 题目文件操作 ); /包括保存,读取和复制print(tt .退出管理系统 n); printf(tt n); printf(t = n)
5、; prntf(ntt请您选择(05):); c=gethar(); wil(c0|c5);return(c-0); void tiaoo(Daa dat,int n) /题号排序 nt ,j; Daa mp;or(i=;in;+i) iti;fo(i=0;i-1;+i) r(j=i+1;j0) emp=a;di=da;=tem; itf(tt=排序成功=n);vid SaveTet(Datada,in) /保存函数 int i; ILE *fp; /*指向文件的指针*/ f((fp=fopn(xl.txt,w))=NUL) *打开文件,并判断打开是否正常* prntf(t不能打开文件n);
6、/*没打开*/ ext(1); *退出*/ pintf(fp,d,n); *将记录数写入文件*/pin(p,rn); fo(i0;in;i+) fprint(,%-8s-6s,dti.tho,dat.tim); prinf(fp,r); /*将换行符号写入文件*/ fcose(fp);n oadTet(Dta at) /载入函数 in i,n;FLE *fp; i((=fopen(txl.txt,r)=UL) prif(不能打开文件n); exit(1);fscanf(p,%d,&n); /*读入记录数*/ fr(=0;in;i+)fscan(fp,s%n,dt.tia,da.iu); *按格
7、式读入记录/ fcos(fp);reur; /*返回记录数*/it Charu(Daa dt,it ) /插入函数 ata emp; /*新插入记录信息i0,j,;char 20;o pi(请插入您的数据n);pintf(t题号:); scanf(t%s,p.thao); fo(k=0;n;k+) /判断插入数据是否存在 i(strcmp(datkih,temptihao)=0) pntf(t-该记录已存在,请重新输入!-n);system(puse); ystm(cls); re; whle(strm(datkthao,mp.tiao)0);pnt(题目:); sc(t%s,te.imu);
8、 rintf(t请输入插入位置的题号:);sanf(t%,s); /输入插入位置的题号* wl(srcp(at.ihao,s)!0ⅈ-) /从最后一个结点开始向后移动一条*/ rcpy(dat+1.tiha,datjtihao); /当前记录的题号拷贝到后一条* strcy(aj+1.tm,tj.m); stpy(athao,temp.tiao); /*将新插入记录的题号拷贝到第i个位置*/strpy(dat.timu,temp.imu); n+; /*记录数加*/retunn;intShru(Data da,in ) /输入函数 in =; hrch; il(ch!=n&ch!=N)
9、/用来判断是否继续输入 ysem(cls); rintf(t题号:); ca(%s,datn+i.tio); pritf(t题目:); scanf(%s,datn+i.tim); prt(nt是否继续添加?(YN)); caf(t%c,c); i+; retrn(+); /其实输入除了N和n的任意键均能实现继续添加的功能 vi Lst(Dat a,it) /显示函数 inti; prtf(=共%d条记录=,n); rntf(n); *格式* rin(题号 题目 n); rintf(n);for(i=0;in;i+) rintf(%2st%3s,datitiho,dti.timu); /*按格式输出*/ printf(n); sysem(pae); nt Sancu(Datadat,n n) /删除函数 char s2;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1