C语言课程设计与实验报告文档格式.docx
- 文档编号:17909475
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:88
- 大小:95.48KB
C语言课程设计与实验报告文档格式.docx
《C语言课程设计与实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计与实验报告文档格式.docx(88页珍藏版)》请在冰豆网上搜索。
租用天数
租车数目
3(辆)
(2)系统功能
a)各种基本数据的录入。
如:
汽车基本信息录入、租赁公司信息录入、汽车租赁信息录入。
b)各种基本数据的修改。
即:
允许对已经录入的数据重新进行编辑、修改。
c)各种基本数据的插入。
d)各种基本数据的删除。
e)基于各种数据的查询。
某租赁公司在指定日期的租车信息。
f)基于各种基本数据的统计计算。
(I)统计各汽车租赁公司总汽车数和租金总额,按租金总额从高到低排序后输出。
(II)统计某年度十二个月份汽车租赁的总次数和总租金。
(III)统计各公司各类汽车出租次数、出租金额,按出租金额从高到低排序后输出。
(IV)分别统计出租率最高的5家公司,从高到低排序后输出公司名称、公司汽车总数、出租总次数。
(V)汽车租赁信息其它方面的统计。
二、系统功能模块结构图
历史信息
三、数据结构设计及用法说明
这个系统是采用三个方向的十字链表,其中第一条链是汽车租赁公司的基本信息,包括公司名称、汽车类型和各类型汽车数量,第二条链是汽车基本信息,包括汽车类型、公司名称、汽车数、日租金、联系人和联系电话,第三条链是汽车租赁的基本信息,包括客户姓名、身份证号、租车日期、租车天数、公司名称、汽车类型和租车数目。
下图就是数据三个方向的十字交叉链表
四、程序结构
下图为程序结构的流程图:
是
五、各模块的功能
Build:
Load:
将已经存好的数据导入
New:
输入新的数据
Save:
将输入的数据保存
Quit:
退出程序
Search:
Firm:
查询公司信息
Bus:
查询汽车信息
Busrent查询汽车租赁信息
Modify:
修改公司信息
修改汽车信息
Busrent:
修改汽车租赁信息
Delete:
删除公司信息
删除汽车信息
删除汽车租赁信息
Insert:
插入公司信息
插入汽车信息
插入汽车租赁信息
Output:
输出公司信息
输出汽车信息
输出汽车租赁信息
Censue:
Tongji1:
统计每个公司的汽车总数和租赁的总收入
Tongji2:
统计每个年度所有公司出租汽车总数和总收入
Tongji3:
统计每个公司每种类型的汽车出租次数和收入
Tongji4:
统计每个公司汽车的出租率、总汽车数和租出汽车次数
Tongji5:
统计所有公司的所有年度汽车出租总数和总收入
六、试验结果
七、体会
这次实验结合了C语言里面的数组、指针、链表、文件等知识点。
刚开始的时候不知道如何下手,后来在相关书籍上找了相似的程序慢慢分析后开始自己尝试着写,因为开始的时候还是不会,就和寝室里面的人讨论、相互参考,经过几天的研究,我们终于写出了第一个界面,有了第一次的经验,我慢慢的写出了Build函数以及后面的函数。
最难的就是函数的调试了,开始运行的时候报错特别多,自己就那样一点一点的调,错误也渐渐减少,但是到最后又几个错误不管我怎么调就是报错,当时真的很着急,后来找到了班上成绩比较好的同学,纵欲把最后几个报错的地方改正了。
经过这么多的曲折,当我看到自己写出来的程序时心里有的是高兴与激动。
或许对于别人来说,这次的实验只是小菜一碟,但对我来说,这是经过我的付出与努力换来的。
八、参考文献
1.C语言程序设计曹计昌卢萍李开编著辞学出版社
2.TurboC使用大全第一册、第二册徐金梧等编译北京科海培训中心
3.C程序设计谭浩强清华大学出版
4.C语言程序设计廖雷高等教育出版社
九、程序清单
#include<
stdio.h>
stdlib.h>
conio.h>
string.h>
typedefstructbuscode
{
charbusnum[5];
chartype[2];
charfirm[30];
intrent;
charcontactor[20];
chartel[20];
structbuscode*next;
structbuscode*right;
}L;
typedefstructbus_rentcode
{
charname[20];
charid_card_num[20];
charrent_date[12];
intrent_days;
charfirm_name[30];
intmount;
structbus_rentcode*next;
}H;
typedefstructfirmcode
{
charname[30];
intmount1;
intmount2;
intmount3;
structfirmcode*next;
structfirmcode*down;
}T;
char*Menu[]={"
Build"
"
Quit"
Search"
Modify"
Delete"
Insert"
Output"
Census"
};
char*Prompt[]={"
F1-Help"
F5-Zoom"
F6-Switch"
F7-Trace"
F8-Step"
F9-Make"
F10-Menu"
NUM"
char*Menus[]={"
Load"
New"
Save"
"
Areyousure?
"
Firm"
Bus"
Busrent"
tongji1"
tongji2"
tongji3"
tongji4"
tongji5"
intMnN[]={3,1,3,3,3,3,3,5};
intMnLoc[][5]={{4,3,2,18,6},
{13,10,2,25,4},
{22,17,2,42,6},
{32,23,2,57,6},
{42,33,2,69,6},
{52,43,2,62,6},
{62,45,2,79,6},
{72,50,2,79,8}};
intMnm,Mns;
charbuf[30*25*2],buf1[40*3*2];
voidoutput_firm(T*head);
voidbuild(T**);
voidSave(T*head);
voidoutput_bus(T*head);
voidLoad(T**head);
voidoutput_busrent(T*head);
voidInsert_firm(T*head);
voidInsert_bus(T*head);
voidInsert_busrent(T*head);
voidDelete_firm(T*head);
voidDelete_bus(T*head);
voidDelete_busrent(T*head);
voidSearch_firm(T*head);
voidSearch_bus(T*head);
voidSearch_busrent(T*head);
voidModify_firm(T*head);
voidModify_bus(T*head);
voidModify_busrent(T*head);
voidtongji1(T*head);
voidtongji2(T*head);
voidtongji3(T*head);
voidtongji4(T*head);
voidtongji5(T*head);
voidShowMenuM(void);
voidSetMenuM(int);
voidClrMenuM(int);
voidShowMenuS(int);
voidHideMenuS(int);
voidSetMenuS(int);
voidClrMenuS(int);
voidSelLR(int);
voidSelUD(int);
voidExeItem(int,int);
voidScanKb(int*,int*);
T*hp=NULL;
L*t1;
H*t2;
voidmain(void)
inti,idx,key0,key1,flag=1;
textbackground(CYAN);
clrscr();
ShowMenuM();
Mnm=1;
Mns=0;
SetMenuM(Mnm);
while(flag){
key0=key1=0;
ScanKb(&
key0,&
key1);
if(key0!
=0){/*ifanordinarykeyispressed*/
if(Mns==0){/*operateonmainmenu*/
if(key0==13)
ShowMenuS(Mnm);
else{
for(i=0;
i<
8;
i++)
if(key0-*Menu[i]==0||key0-*Menu[i]==32)
break;
if(i<
8)
ShowMenuS(i+1);
}
}
else{/*operateonsubmenu*/
ExeItem(Mnm,Mns);
elseif(key0==27){
HideMenuS(Mnm);
Mns=0;
for(i=1,idx=0;
Mnm;
idx+=MnN[i-1];
for(i=idx;
idx+MnN[Mnm-1];
if(key0-*Menus[i]==0||key0-*Menus[i]==32)
idx+MnN[Mnm-1])
ExeItem(Mnm,i-idx+1);
else{/*ifaspecialkeyispressed*/
switch(key1){
case33:
ShowMenuS
(1);
break;
/*Alt+F*/
case18:
ShowMenuS
(2);
/*Alt+E*/
case19:
ShowMenuS(3);
/*Alt+R*/
case46:
ShowMenuS(4);
/*Alt+C*/
case25:
ShowMenuS(5);
/*Alt+P*/
case24:
ShowMenuS(6);
/*Alt+O*/
case32:
ShowMenuS(7);
/*Alt+D*/
case48:
ShowMenuS(8);
/*Alt+B*/
case61:
ExeItem(1,1);
/*F3*/
case106:
ExeItem(1,2);
/*Alt+F3*/
case60:
ExeItem(1,4);
/*F2*/
case45:
flag=0;
/*Alt+X*/
case102:
ExeItem(3,1);
/*Ctrl+F9*/
case95:
ExeItem(3,2);
/*Ctrl+F2*/
case62:
ExeItem(3,3);
/*F4*/
case65:
ExeItem(3,4);
/*F7*/
case66:
ExeItem(3,5);
/*F8*/
case108:
ExeItem(3,6);
/*Alt+F5*/
case97:
ExeItem(7,1);
/*Ctrl+F4*/
case96:
ExeItem(7,2);
/*Ctrl+F3*/
case100:
ExeItem(8,1);
/*Ctrl+F7*/
case101:
ExeItem(8,6);
/*Ctrl+F8*/
case72:
SelUD(-1);
/*UP*/
case80:
SelUD
(1);
/*DOWN*/
case75:
SelLR(-1);
/*LEFT*/
case77:
SelLR
(1);
/*Right*/
}
voidShowMenuM(void)/*showmainmenu*/
inti;
window(1,1,80,1);
textbackground(GREEN);
textcolor(YELLOW);
for(i=0;
i<
i++){
gotoxy(MnLoc[i][0],1);
textcolor(RED);
cprintf("
%c"
*Menu[i]);
textcolor(BLACK);
%s"
Menu[i]+1);
voidSetMenuM(intmmn)/*tagmainmenu*/
gotoxy(MnLoc[mmn-1][0],1);
Menu[mmn-1]);
voidClrMenuM(intmmn)/*clearthetagofmainmenu*/
*Menu[mmn-1]);
Menu[mmn-1]+1);
voidShowMenuS(intmmn)/*showsubmenuofmainmenummn*/
inti,left,top,right,bottom,ht,wd,idx;
if(mmn==Mnm&
&
Mns>
0)
return;
if(mmn!
=Mnm){
if(Mns>
0)HideMenuS(Mnm);
ClrMenuM(Mnm);
SetMenuM(Mnm=mmn);
Mns=1;
left=MnLoc[Mnm-1][1];
top=MnLoc[Mnm-1][2];
right=MnLoc[Mnm-1][3];
bottom=MnLoc[Mnm-1][4];
ht=bottom-top+1;
wd=right-left+1;
for(i=1,idx=0;
idx+=MnN[i-1];
gettext(left,top,right,bottom,buf);
window(left,top,right,bottom);
textbackground(LIGHTGRAY);
window(left,top,right,bottom+1);
putch(0xda);
for(i=2;
wd;
putch(0xc4);
putch(0xbf);
ht;
i++){
gotoxy(1,i);
%c%-*s%c"
0xb3,wd-3,Menus[idx+i-2],0xb3);
gotoxy(3,i);
*Menus[idx+i-2]);
putch(0xc0);
=right-left;
putch(0xd9);
SetMenuS(Mns);
voidHideMenuS(intmmn)/*hidesubmenuofmainmenummn*/
intleft,top,right,bottom;
left=MnLoc[mmn-1][1];
top=MnLoc[mmn-1][2];
right=MnLoc[mmn-1][3];
bottom=MnLoc[mmn-1][4];
puttext(left,top,right,bottom,buf);
voidSetMenuS(intsmn)/*tagsubmenu*/
ClrMenuS(Mns);
Mns=smn;
idx+=Mns-1;
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,Mns+1);
%-*s"
wd-3,Menus[idx]);
voidClrMenuS(intsmn)/*clearthetagofsubmenu*/
idx+=smn-1;
textbackground(WHITE);
gotoxy(2,smn+1);
gotoxy(3,smn+1);
*Menus[idx]);
voidSelLR(intlr)/*selectmenuitemleftorright*/
intmmn=Mnm+lr;
if(mmn>
mmn=1;
elseif(mmn<
1)
mmn=8;
if(Mns>
ShowMenuS(mmn);
else{
voidSelUD(intud)/*selectsubmenuitemupordown*/
intsmn=Mns+ud;
if(Mnm==2)
if(smn>
MnN[Mnm-1])
smn=1;
elseif(smn<
smn=MnN[Mnm-1];
if(Mns==0){
if(ud==1)ShowMenuS(Mnm);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 实验 报告