C语言交通处罚单管理系统
时间:2025-02-24
时间:2025-02-24
2011年度高级语言课程设计期末大作业
《题目》
院 系: 工学院机械系
专 业: 机械工程及自动化 年 级: 10 级 学生姓名: 学 号: 指导教师:
题 号:
2011年6月
一、题目(课程设计题库第X题)
【说明及要求】
实现交通罚款信息(车辆牌号、驾驶证号、交警代号、违章时间、罚款金额、缴费状态) 的登记、删除、修改功能,并能分别按车辆牌号、驾驶证号、交警代号查询交通罚款信息。 【提示】
(1)定义结构体表示罚款信息; (2)用文件实现罚款信息存储;
(3)分别编写函数实现罚款信息登记、修改、删除以及按车辆牌号、驾驶证号、交警代号 查询交通罚款信息。
(4)在 main 函数中调用上述函数进行演示。
二、问题分析
(一)需求分析
1.交通处罚单信息用文件储存,提供文件的输入输出操作; 2.要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;
3.要车辆、驾驶员和开单交警查询,则要提供查找操作; 4.另外提供系统操作和键盘式选择菜单以实现功能选择。
(二)该问题可以分为以下几个模块
三、程序流程图
【信息输入模块】
【删除罚单模块】
【信息查询模块】
【信息查询模块】
四、程序代码
#include<stdio.h> #include<string.h> #include<stdlib.h> #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+1); printf("\n 车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20110601)\n"); printf("\n注意:中间用空格隔开!\n");
scanf("%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date); } for(j=0;j<i;j++) {
fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);
} fclose(fp); printf("\n保存成功!"); printf("\npress enter to return menu\n"); getchar(); getchar(); menu(); }
printf("\n请输入处罚单数量:"); scanf("%d",&i);
for(j=0;!feof(fp);j++) //读取文件 {
fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date); }
num=j+i; if(num>N) {
printf("\n结构体数组数的N太小,请先修改N的值\n"); printf("\npress enter to return menu\n"); getchar(); getchar(); menu(); }
printf("\n"); for(j=0;j<i;j++) {
printf("输入第%d张处罚单的:\n",j+1); printf("\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20110601)\n"); printf("\n注意:中间用空格隔开!\n");
scanf("%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date); }
for(j=0;j<i;j++) { fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,li …… 此处隐藏:5704字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:抗战期间苏联的援华政策评析