- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统基础Ⅱ
删除模块
(3)浏览模块
查询模块
统计模块
4.主要问题解决方法及技术关键 设计中主要通过函数来实现,然后在逐步细化,最终调试完成,主要包括以下函数。 4.1主菜单函数void menu 将各部分模块函数写入主菜单函数,通过switch 结构输入对应数字分别进入各个模块函数,实现功能。 4.2输入信息函数void input 当输入1时进入信息输入函数,具体功能实现如下,输入处罚单数量,打开文件夹(list.txt)若打开成功将输入的处罚单数量与之前保存数量相加,若超出保存容量范围,回到主菜单,否则写入信息。若打开文件夹(list.txt)失败,则建立该文件夹写入信息,如建立失败,返回主菜单。
4.3删除记录函数void delet 函数 当输入2时进入删除函数,具体功能实现如下,输入车牌号,利用字符串比对函数strcmp 与所输入编号一一比对,若所保存数据有与其相同,则通过strcpy 函数进行删除操作,若所保存数据未有相同,则返回主菜单。
4.4浏览函数void browse
当输入3时,进入浏览函数,利用fscanf 函数进行读取文件,利用for循环体输出所存信息,返回主菜单。
4.5查询函数void search 当输入4时进入查询函数,查询分为1.车牌号查询,2.驾驶员姓名查询,3.交警姓名查询。利用fscanf 函数读取数据,利用strcmp 函数进行字符串比较,若所读取的数据有与其相同的数据,则输出该数据,若没有则回到主菜单。
4.6统计函数void count 当输入5时进入统计函数,利用fscanf 读取数据,输入一个时间段,利用strcmp 和逻辑与,在for循环体中进行选择,并计数,选择出罚单数,罚单号,输出数据。返回主菜单,若未查询到,返回主菜单。
程序清单
#include
#include
#include
#define N 100
struct Plist //处罚单 char vno[20]; //车牌号
char dname[20]; //驾驶员姓名
char pname[20]; //交警姓名
char pno[20]; //交警编号
char no[20]; //处罚单编号
char date[20]; //处罚日期
list[N]; //处罚单数组
void input ; //输入模块
void dele ; //删除模块
void browse ; //浏览模块
void search ; //查询模块
void count ; //统计模块
void menu ; //主菜单
void vno_search ; //按车牌号查询
void dna_search ; //按驾驶员姓名查询
void pna_search ; //按开单交警姓名查询
main menu ;
getchar ; void menu int n;
int r;
do system cls ; printf \n\t\t\t\t交通处罚单管理系统\n ; printf ········································ ; printf 菜单: 1-信息录入 2-信息删除 3-信息浏览 4-信息查询 5-信息统计 6-退出系统\n ; printf ········································ ; printf 请从输入数字选择相应的功能: ; scanf %d,n ; if n 1||n 6 r 1;
getchar ; else r 0;
while r 1 ;
switch n case 1:input ;break; case 2:dele ;break; case 3:browse ;break; case 4:search ;break; case 5:count ;break; case 6:exit 0 ; void input FILE*fp;
int num; int i,j;
if fp fopen list.txt,r+ NULL if fp fopen list.txt,w NULL printf 文件打开或创建失败!\n ; printf \npress enter to return menu\n ; getchar ; menu ; printf \n请输入处罚单数量: ; scanf %d,i ;
printf \n\n ; for j 0;j i;j++ printf 输入第%d张处罚单的:\n,j
文档评论(0)