C语言程序设计 题库管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计基础课程设计报告
班级:计算机科学与技术1103班
*名:***
****: ***
完成日期:2012年9月6日
(题目)
1.设计题目与要求
(简要介绍课程设计题目内容与要求。)
1设计内容
要求输入试题(仅限选择题和填空题)基本信息,实现试题浏览.,查询,修改功能,并将数据保存至文本文件。
2要求
功能完善,界面友好。
2.算法设计与描述(要求有相关流程图)
2.1 算法设计与描述
(描述算法设计、实现过程。)
1.提供可操作的主菜单:输出主菜单,用户可根据菜单来选择操作。根据客户输入的选项来运行不同的功能,运行不同的函数。
2.。试题信息的录入函数:按照提示输入题的题号,题目内容,并提示用户是否继续录入,每输入一个记录,全局变量n就自增,最后最为函数的返回值返回。
3.保存试题信息函数:将文件的所有数据通过fprintf来写入指定文本文档,完成后关闭文件,没有返回值
4. 载入试题信息函数:通过fopen函数打开指定文件,通过fscanf来读取文件里的数据,最后返回记录数,避免了每次打开时都要输入数据的麻烦。
5. 查询记录函数:细分为按题号,题目两种方式来进行查询记录,并能对查询记录不存在进行提示。遍历所有结构体找出符合的输出。
6. 修改记录函数:首先判断用户要修改的试题序号是否存在,进行相应的系统提示,然后遍历所有记录找出符合的,按照提示依次进行修改项目,返回记录值不变(没增加也没减少)。
7. 删除记录函数:首先判断用户要删除的试题序号是否存在,进行相应的系统提示,然后遍历所有记录找出符合的删除,冰讲后面的所有数据向前移动一个位置,记录数减一并返回。
2.2 主要流程图
(用N—S图描述。)
2、保存函数
3、载入函数
5、修改函数
6、删除函数
3.设计软硬件环境
硬件设备系统:Microsoft Windows XP Professional 版本2002
机型:Inter ® Core™******************** 2.99GHz, 2.00 GB内存
软件设备Microsoft Visual C++ 6.0应用程序调试
4.源程序代码清单
#include
#include
#include
typedef struct
{
char tihao[10]; //题号
char timu[15]; //题目
}Data;
Data da[80];
int menu_select()
{
char c;
do{
system("cls");
printf("\t\t\t ========题库管理系统======== \n");
printf("\t\t\t ┌───────────┐\n");
printf("\t\t\t │1. 题目的输入│\n");
printf("\t\t\t │2. 题目的浏览│\n");
printf("\t\t\t │3. 题目信息更改│\n"); //包括删除,插入和更改
printf("\t\t\t │4. 题目信息查询│\n");
printf("\t\t\t │5. 题目文件操作│\n"); //包括保存,读取和复制
printf("\t\t\t │0. 退出管理系统│\n");
printf("\t\t\t └───────────┘\n");
printf("\t\t\t ============================ \n");
printf("\n\t\t请您选择(0-5):");
c=getchar();
}while(c<'0'||c>'5');
return(c-'0');
}
void tihaosort(Data dat[],int n) //题号排序
{
int i,j;
Data temp;
for(i=0;i da[i]=dat[i]; for(i=0;i for(j=i+1;j if(strcmp(da[i].tihao,da[j].tihao)>0) { temp=da[i];da[i]=da[j];da[j]=temp; } printf("\t\t========排序成功========\n"); } void SaveText(Data dat[],int n) //保存函数 { int i; FILE *fp; /*指向文件的指针*/ if((fp=fopen("txl.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/ { printf("\t不能打开文件\n"); /*没打开*/ exit(1); /*退出*/ } fprintf(fp,"%d",n); /*将记录数写入文件*/ fprintf(fp,"\r\n"); for(i=0;i { fprintf(fp,"%-8s%-6s",dat[i].tihao,dat[i].timu); fprintf(fp,"\r\n"); /*将换行符号写入文件*/ } fclose(fp); } int LoadText(Data dat[]) //载入函数 { int i,n; FILE *fp; if((fp=fopen("txl.txt","r"))==NULL) { printf("不能打开文件\n"); exit(1); } fscanf(fp,"%d",&n); /*读入记录数*/ for(i=0;i fscanf(fp,"%s%s\n",dat[i].tihao,dat[i].timu); /*按格式读入记录*/ fclose(fp); return n; /*返回记录数*/ } int Charu(Data dat[],int n) //插入函数 { Data temp; /*新插入记录信息*/ int i=0,j,k; char s[20]; do { printf("\t请插入您的数据\n"); printf("\t题号:"); scanf("\t%s",temp.tihao); for(k=0;k { if(strcmp(dat[k].tihao,temp.tihao)==0) { printf("\t-------该记录已存在,请重新输入!-------\n"); system("pause"); system("cls"); break; }