




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个人帐簿管理系统课程设计
编
B04900083
号■学
号.201240420113
HUBEIPOLYTECHNICUNIVERSITY
课程设计
教学院计算机学院
课程名称数据结构课程设计
题目个人帐簿管理系统
专业网络工程
班级1班
姓名夏能
同组人员
欢
指导教师冯珊
2012年12月25日
/月/我手挈花课程设计(论文)
目录
一概述.....................................................3
二总体方案设计............................................4
三详细设计................................................8
四程序的调试与运行结果说明...............................23
五课程设计总结...........................................26
参考文献...................................................28
附录.......................................................29
1
/月/我手挈花课程设计(论文)
2
/月/我手挈花课程设计(论文)
一概述
1.课程设计的目的
(1).理解和掌握该课程中的有关基本概念,程序设计思想和方法。
(2).培养综合运用所学知识独立完成课题的能力。
(3).培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理
论,全方位考虑问题等科学技术人员应具有的素质。
(4).掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经
验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
2.课程设计的要求
个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品
消费,房租,子女教育费用,水电费,医疗费,储蓄等。该系统采用了Windows
XP操作系统结合VisimlC++6.0,TC2.0等软件开发,可以输入和修改某月的
收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询
每月的收支情况。
该课程设计中会频繁的使用到C语言里的文件操作的知识点,而文件操
作又是我们平常的学习当中使用的比较少的地方,所以在课程设计之前我们
组的成员专门花了一节课的时间重新阅读了《C程序设计教程》以及《Cprimer
phis》里的文件操作的相关知识。
3
/月/我手挈花课程设计(论文)
二总体方案设计
L系统整体设计思路
本课程序中主要通过C语言的文件操作实现文件的读写操作来存放管理
数据,里面主要包含功能函数有接收键盘输入数据、将数据写入指定文件、
将.dat文件文件转换.txt文件显示出来、找到对应月份、对一个月内各项支出
进行排序、修改其中一项数据以及删除整月数据。整个系统的界面以及对各
功能函数的调用都放在了主函数之中。整个程序中一个指针变量a贯穿始终,
可以使各个函数共享指针变量a所指向的内存区域的数据。
整个程序涉及到的功能较多,代码普遍较长,根据课程设计教学大纲里
的要求以及我们对程序的整体设计我们将整个程序分为了6个功能,7个功能
函数以及主函数来调度各个函数以来实现功能。
2.算法的整体思路
数据类型设定为;
typedefstruct{
intmonth;
intshipin;
intfangzu;
intzinv;
intshuidian;
intyiliao;
intchuxu;
intshouru;
}Infor;
为了方便使用,所以每一个变量基本上都使用了拼音。另外为了方便查
询与排序,又另外定义了
typedefstruct{
intno;
intdata;
}pType;方便排序时候使用。
4
即以kN挈花课程设计(论文)
整个程序流程图如下:
整个程序在主函数中由switch调用各个功能函数来执行整个程序。
3.主要特点
本程序可以在控制台里录入数据后写入文件当中,即使退出了程序,只
要不删除自己所写的文件都可以随时通过程序对文件里的任意数据进行增删
改查,并且可以实现对多文件的管理,在修改数据的时候我们可以对指定文
件里的指定月份的指定数据项进行修改体现了修改的灵活性,在查询的时候
我们可以在控制台中查询一个文件中里的一个月的数据也可以在控制台中查
询指定文件里的直径月份的数据,还可以对指定文件里的指定月份的数据整
项删除。最后该程序还可以对每个月中的各项开支进行从小到大的排序。
4.具备功能
该程序可以接收键盘输入数据、将数据写入指定文件、将.dat文件文件
转换为txt文件显示出来方便查看、找到对应月份、对一个月内各项支出进行
排序、修改其中一项数据以及删除整月数据最后在主函数中对小组成员的各
个函数进行整体的调试调用。详细情况见下表:
5
/月/我手挈花课程设计(论文)
voidinput(Infor*a)该函数接受一个从主函数传过来的指
针变量,将数据写入a所指向的内存区
域
voidwriteinfor(Infor*a)该函数将a所指向的内存区域的数据写
入到指定的.dat文件中
voidchangeForniat()该函数用于查询的时候将.dat文件里的
数据写入到控制台中,并转化一个.txt
文件显示出来,最后关闭这个文件。函
数执行完毕并删除该.txt文件
intsearch(Infor*a)接受主函数中传来的指针变量,寻找该
指针指向的内存区域中a->month与你
所需要查找的month值相等的位置,使
a指针刚好指向这个月的数据,若找到
了标志位为1返回正确,如果没找到的
话就显示为找到对应月份。
voidpaixu(Infor*a)对指定月份里的数据项里的数据从小
到大进行排序。
voidmodify(Infor*a,intmon)对指定文件的指定月份的指定的数据
项的数据进行修改
voiddelRecord(intmon)对指定的文件的指定月份的数据整月
进行删除
我在本程序中承担的主要任务是查找对应月份,查询数据或修改该月份
中的一项数。该三项功能主要解决的问题是如何在指定的文件中找到对应的
数据项并对该数据项进行相应的操作。最后在主函数中通过switch对各个功
能模块进行整体调用最终实现该系统。
我所主要要解决的问题是如何使用正确的文件读写操作模式字符串来打
开文件以及对指定的.dat文件读取后转换为.txt文件并最终按照以定的格式显
示在屏幕上。另外在查询函数中我们要在相应的文件中找到对应的月份,并
将指针移动到这里指向该数据区域,这样的话我们就可以利用该指针变量方
便的查询、修改数据,这也正是体现出指针变量使用的灵活性。其中文件操
作中fopen函数模式字符串的功能如下:
6
/月/我手挈花课程设计(论文)
模式字符串意义
“r”打开已过文件,可以读取文件
“w”打开己文件,可以写入文件,先
将文件的长度截为0,如果该文件
不存在则创建之
“a”打开一个文本文件,可以写入文
件,向已有文件的尾部追加内容,
如果该文件不存在则先创建之
“r+”打开一个文本文件,可以进行更
新,也可以读取和写入文件
“w+”打开已隔文本文件,可以进行更
新(写入),如果该文件存在则首
先将其长度截为0:如果不存在则
先创建之
“a+”打开一个文本文件,可以进行更
新(读取和写入),向己有的文件
的尾部追加内容,如果该文件不
存在则先创建之;可以读取整个
文件,但写入时只能追加内容
“rb”,”、vb+”,"ab“Jab+”Ja+b”Jwb+”Jw+b”与前面的模式相同,只是使用二
“ab+"Ja+b"进制模式而非文本模式打开文件
7
/月/我手挈花课程设计(论文)
三详细设计
1.changeFormat()
该函数功首先在控制台上打印一排语句提示用户输入想要查找的文件
名,若该文件不存在的话该程序就会终止。若该文件存在的话使用文件
类型指针fpl指向该文件,以二进制文件读写方式打开该文件,接着我
用相通的名字却用.txt后缀创建了另一个文件,并用文件类型指针fp2指
向它,并在该文件中打印一些展示文字使输出结果更加好看,同时将这
些文字也打印在了控制台上,最后将fpl文件指向的内容用格式化输出
fprintf全部写入fp2中,最后分别关闭fpl,fp2,并将刚刚的.txt文件显
示出来,同时删除刚刚创建的.txt文件。
8
/月/我手挈花课程设计(论文)
输入所在的文件名
N
Y
找到所在的文件
未找到所在的文件
生成一个txt文件
将dat文件中的数据一一写入a,
再将a所指向内存的物据写入txt文件中
。将.txt文件打开显示出来二)
历txt文件,删除该文件,
结束该函数
voidchangeFormat()
(
FILE*fpl,*fp2;
Infor*a;
charfilename[100];
inti;
a=(Infor*)malloc(sizeof(Infor)):
printf(〃请输入您要查询的数据所在的文件名(以.dat为后缀的
文件名)〃);
scanf("%s”,filename);
fpl=fopen(filename,*rb+*);〃以读写方式打开一个二进制文件
9
即以kN挈花课程设计(论文)
if(fpl==NULL)
printf("无法找到文件\n");
exit(0);
)
for(i=0;filename[i]!=,.*;i++)
(
filename2[i]=filename[i];
)
if(filename2[i]!='.')
(
strcat(filename?,txt");〃将filename的后缀改为.txt
文件
}
fp2=fopen(filename2,"wb+”);
if(fp2==NULL)
(
printf("无法创建文件\n");
return;〃返回主函数
)
fputs(*\n..............................个人帐簿管理系
统............................\r\n*»fp2);
fputs(〃记录月份食品消费房租费用子女费用水电费用医
疗费用储蓄费用本月收入\r\n\fp2);
fputs("-----------------------------------------------------
-------------------\r\n”,fp2);
printfC\n汜录月份食品消费房租费用子女费用水电费用
医疗费用储蓄费用本月收入\n〃);
/月/我手挈花课程设计(论文)
printf("---------------------------------------------------------
----------------------\n");
rewind(fpl);〃使fpl指向文件开头
fread(a,sizeof(Infor),1,fpl);
whileQfeof(fpl))〃从原文件.dat中读数据写入显示文件.txt
中
(
printf("%7d%8d%8d%8d%8d%8d%8d%8d\n”,a->month,a->ship
in,a->fangzu,a->zinv,a->shuidian,a->yiliao,a->chuxu,a->shou
ru);
fprintf(fp2,"%7d%8d%8d%8d%8d%8d%8d%8d\r\n*,a->month,
a->shipin,a->fangzu,a->zinv,a->shuidian,a->yiliao,a->chuxu,
a->shouru);〃格式化文件输出
fread(a,sizeof(Infor),1,fpl);
)
fputs(*----------------------------------------------------------
---------------------\r\n”,fp2);
fputs(〃\r关闭木程序继续原程序!\n〃,fp2);
fclose(fpl);
fclose(fp2);
system(filename2);〃调用打开转换的文本文件
remove(filename2);
)
2.search(infor*a)
该函数功首先在控制台上打印一排语句提示用户输入想要查找的文
件名,若该文件不存在的话该程序就会终止。若该文件存在的话使用文
件类型指针fpl指向该文件,以二进制文件读写方式打开该文件,接着
我用相通的名字却用.txt后缀创建了另一个文件,并用文件类型指针fP2
指向它,并在该文件中打印一些展示文字使输出结果更加好看,同时将
11
M及以kN挈花课程设计(论文)
这些文字也打印在了控制台上,最后将fpl文件指向的内容用格式化输
出fprintf全部写入fp2中,最后分别关闭fpl,fp2,并将刚刚的.txt文件
显示出来,同时删除刚刚创建的.txt文件。
intsearch(Infor*a)
(
FILE*fpl;
intmon;
intisfound=0;〃标志变量,初始为0代表为找到对应的月份,
若找到对应的月份这设置为1
charfilename[100];
printf("请输入文件名字(.dat文件):”);
scanffilename);
即以ZTN挈花课程设计(论文)
printf(〃请正确输入月份:〃);
scanf&non);
fflush(stdin);〃清除缓冲区
fpl=fopen(filename,"rb+”);
if(fpl==NULL)
(
printf("无法找到文件\n");
exit(O);
)
rewind(fpl);〃将fpl指向文件头,这样更加严谨
fread(a,sizeof(Infor),1,fpl);
whileQfeof(fpl))〃查询操作
(
if(a->month==mon)
(
isfound=l;
break;
)
else
(
isfound=0;
)
fread(a,sizeof(Infor),1,fpl);
}
fclose(fpl);
if(isfound)
returnOK;
else
printf("未找到对应的月份\n〃);
/月/我手挈花课程设计(论文)
return1;
)
)
3.voidmodify(Infor*a,intmon)
该函数主要功能在于修改指定文件下指定月份的指定数据项,首先用
fpl指向指定的文件,同时用fp2打开一个temp.dat文件。月份是通过前
面的search函数找到后,通过指针变量a“传递”过来的。首先选择修改
哪一项数据,然后输入要修改的数据的内容将其写入a指向的内存区域
里对应的数据项。此时我们用printf在控制台打印出修改后的月份的数
据。然后用指针变量b来存储从fpl文件中读取的数据,当它不是对应
的月份就直接写入fp2指向的temp.dat文件中,当它是对应的月份的时
候就将a指向的内存区域的数据写入fp2指向的temp.dat文件中,该过
程还是一个直到fpl指向文件结尾时才结束的函数。最后关闭fpl,fp2指
向的文件,删除源文件,将temp.dat文件的名字命名为与先前文件相同
的名字并在控制台上打印出修改成功的字样。
14
/月/我手挈花课程设计(论文)
voidmodify(Infor*a,intmon)〃修改数据
(
FILE*fpl,*fp2;
inti;
intmoney;
charfilename[100];
Infor*b;
b=(Infor*)oalloc(sizeof(Infor));
15
MW/kN季花课程设计(论文)
printf(〃修改后的数据所要插入的文件(注意与前面的文件名一
定要是一致的!!)〃);
scanf('%s”,filename);
fpl=fopen(filename,"rb+”);
fp2=fopen("temp,dat","wb+")"/temp,dat作为临时文件
printf("你要修改哪一项数据?(1代表食品,2代表房租,3代
表子女费用,4代表水电费用,5代表医疗费用,6代表储蓄,7代表
收入):");
scanf("%d",&i);
while(i<l||i>7)
(
printf("请重新输入:”);
scanf&i);
)
printf(〃请将修改后的数据输入进来:〃);
scanf&money);
switch(i)
{
case1:
a->shipin=money;
break;
case2:
a->fangzu=money;
break;
case3:
a->zinv=money;
break;
case4:
a->shuidian=money;
break;
case5:
a->yiliao=money;
break;
case6:
16
/月/我手挈花课程设计(论文)
a->chuxu=money;
break;
case7:
a->shouru=money;
break;
default:
break;
)
printf("修改后的:\n");
printfC\n记录月份食品消费房租费用子女费用水电费用
医疗费用储蓄费用本月收入\n〃);
printf(*----------------------------------------------------
--------------------------\n〃);
printfC%7d%8d%8d%8d%8d%8d%8d%8d\n*,a->month,a->ship
in,a->fangzu,a->zinv,a->shuidian,a->yiliao,a->chuxu,a->shou
ru);
rewind(fpl);
fread(b,sizeof(Infor),1,fpl);
while(!feof(fpl))〃重写数据
(
if(b->month==mon)
(
fwrite(a,sizeof(Infor),1,fp2);//修改数据
)
else
(
fwrite(b,sizeof(Infor),1,fp2);
)
fread(b,sizeof(Infor),1,fpl);
)
fclose(fpl);
fclose(fp2);
鹏月,挈花课程设计(论文)
remove(filename);〃删除源文件
rename(*temp.dat",filename);〃重命名中间文件
printf("修改数据成功!\n");
)
4.主函数调试
主函数部分通过switch语句来对实现整个程序功能的调度。首先easel
里通过input函数将变量写入a所指向的内存区域,然后调用writeinfor函
数将指针变量a所指向区域的数据写入用户自己指定的文件中。case2是对用
户指定的文件的数据进行整个文件查询,结果最终会打印在控制台中并且还
会显示一个.txt文件这样更加方便更加直观。case3中调用了search函数,
并且通过标志位变量flag来接收search函数所返回的值,若flag值不是0K
的话就打印出没有符合条件的记录的语句,flag是0K的话就通过指针变量a
将其所指向的内存区域的数据格式化的打印在屏幕上,然后调用modify函数
对该该月份的数据指定的数据项进行修改。case4中前面部分的流程与case3
还是一样的,同样是调用search函数找到指定文件里的指定月份的数据并使
a指向它,最后通过指针变量a打印在屏幕上。case5中还是通过search函
数来找到指定的月份然后通过paixu函数来对指定月份的数据进行从小到大
的排序,最后还是打印到控制台上。case6中同样是通过search函数找到指
定的月份,并删除这个月份的所有数据。case7中通过〈stdlib.h>函数中的
exit。函数来退出整个程序。
主函数的整个流程图如算法整体思路里的函数流程图所示,在这里就省略
掉了。
intmainO
(
while(TRUE)
(
intflag;〃标志位,用来保存查询函数所返回的结果
intite叫〃功能项目号
intmon;
Infor*a;〃信息指针
a=(Infor*)malloc(sizeof(Infor));〃动态分配内存空间
do(
printfC\n\t******************欢迎进入个人帐簿管理系统
18
/月/挈花
/TN课程设计(论文)
****************\n");
printf(*\t*\t
*\n");
printf(*\t*\t—-主菜单一—
*\n");
printf('\t*\t
*\n");
printf1.录入数据*\nO;
printf("\t*\t2.查看数据*\n");
printf(*\t*\t3.修改数据*\n〃);
printf(*\t*\t4.查询数据
*\n");
printf(*\t*\t5.排序数据*\n〃);
printf6.删除数据*\n〃);
printf(*\t*\t0.退出系统*\n");
printf(*\t*\t*\n");
printf(\t********3tc^******5ic**5K*********************5^5K5K5K*******
******\n\n");
printf("请输入要进行的操作:”):
scanf("%d”,&item);
}while(item>7|itenKO);〃选择功能
switch(item)
〃录入数据
case1:input(a);
writeinfor(a);
break;
〃查看数据
case2:changeFormat();〃将dat文件转换为txt文件来进行查
询
break;
/月/我手挈花课程设计(论文)
〃修改数据
case3:flag=search(a);
mon=a->month;
if(flag!=OK)printf("\n没有符合条件的记录!\n");
else
(
printf(〃\n记录月份食品消费房租费用子女费用
水电费用医疗费用储蓄费用本月收入\n");
printfC--------------------------------------------------------
-----------------\n〃);
printfC%7d%8d%8d%8d%8d%8d%8d%8d\n*,a->month,a->shipin,
a->fangzu,a->zinv,a->shuidian,a->yiliao,a->chuxu,a->shouru);
modify(a,mon);
}
break;
〃查询数据
case4:flag=search(a);
if(flag!=OK)printf("\n没有符合条件的记录!\n");
else{
printf(〃\n记录月份食品消费房租费用子女费用
水电费用医疗费用储蓄费用本月收入\n");
printf("-------------------------------------------------------
-----------------\n〃);
printf(*%7d%8d%8d%8d%8d%8d%8d%8d\n*,a->month,a->shipin,
a->fangzu,a->zinv,a->shuidian,a->yiliao,a->chuxu,a->shouru);
20
/月/我手挈花课程设计(论文)
break;
〃排序数据
case5:flag=search(a);
if(flag!=OK)
(
printfC\n没有找到符合排序条件的记录!\n〃);
)
else
(
paixu(a);
}
break;
〃删除数据
case6:
flag=search(a);
mon=a->month;
if(flag!=OK)printf("\n没有符合条件的记录!\n");
else
(
printf("\n记录月份食品消费房租费用子女费用
水电费用医疗费用储蓄费用木月收入\n");
printf("--------------------------------------------------------
-----------------\n〃);
printfC%7d%8d%8d%8d%8d%8d%8d%8d\n*,a->month,a->shipin,
a->fangzu,a->zinv,a->shuidian,a->yiliao,a->chuxu,a->shouru);
delRecord(mon);
)
break;
〃退出系统
case0:
21
/月/我手挈花课程设计(论文)
printf(〃\n指导老师:冯珊\n");
printf("小组成员:夏能,王欢,邱少雄,罗四维\n〃);
exit(0);
break;
)
free(a);〃释放内存空间
)
return0;
)
22
/月/我手挈花课程设计(论文)
四程序的调试与运行结果说明
1.查询函数
*・。*»・■*E七
我便送入个人侏理系统
-一
jl:»»」t
TM词
2.s
Dabu)3.i
M24.
S®
.G^
据
B
.
(以・k■为无福的文件名)・•八・a,
心圆月侑食品希CJ层阻瞥用子女费用水叭货则医疗费用储蓄费则本M收入
15B2803607«e985A69555
G00?«890S75。68439。900
S0O90S8W40968059®7te
7除,T,EAC-'fg^,Dttug,ftW^e.e-
皆求要查司掳耕在蚊件名以3为段税件名)tft.dat
朗份食品糠房租断子姨用水电酬断M储懿用本月必
2394联5
1澳
硒
lan58$8688S55傻
679886843相9
物
88758联
508980868057
lz40898
锣
1
2
3改
4询
s
6
DC
首先是测试查询函数,数据已经先通过第一项功能提前写入到了test.dat
文件中,我们在主函数界面中输入2选择查看数据这时在控制台中我们可以
看到数据按照一定的格式输出了,同时也打开了一个名为test.txt文件显示出
了同样的数据,这是我们看到目录结构中同时有test.dat文件和test.txt文件,
test.txt文件中提示用户关闭本程序继续源程序,关闭程序后我们发现回到了
主函数界面中,并且text.txt文件被删除掉了。
23
/月/我手挈花课程设计(论文)
2.查询数据
欢迎进入个人帐清管理系统
主菜单
1i人数
2・
•袤
3•
4
n询
5一
一
一
6原
0一
吉
进
行的
操作
j要
更
吉
名字
即
黑
JA蓄
喻:test.d<it
吉
E月份<.
:!
记录月份闰品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入
1015。2802G070098546。55S
其次测试第四项查询数据功能,该功能与前者的区别在于,前者是对整个
文件的数据进行查询,而该项功能是对于指定文件的指定月份来进行查询。
我们首先在主函数界面下输入4来选择功能,然后控制台会提示我们输入要
查询的文件名,还是输入刚刚的test.dat,然后控制台接着会提示用户输入查
询的月份,我们输入了10,这时候会发现控制台将10月份的数据直接打印在
了控制台上。
3.修改数据
24
/月/我手挈花课程设计(论文)
查
4询数
・H
5数
•排
6数
•年
0系
•
道卷入墨谯勺电操作:3山
请输入宠?件名于<.dat文件):test.dat
请正酶人月份
记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入
1015。395
70
改
的
所
雷
入
意
定
着
后
据
的
件
号
2885,55
^要!
。
一C
居es
费
表
水电
子
一
?
医
女t.
用
^用
改
一
;
修
索
埠<151
k7^表
,
改
人
的
^来
后
制0
的::3
怛录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入
10380280360700985460555
份改数据成功!
接着测试修改数据的功能,这时我们在主界面中输入3,这里调用前面的
search来指定文件与月份,所以控制台上还是谁提示我们输入相应的文件与
响应的月份,我们输入好testdat与10后,会发现控制台上提示我们选择要
修改哪一项,这时我们选择修改的是第一项即食品消费这一项,将其数字从
150改为380,最后在控制台中显示出来了,我们发现结果是完全正确的。
25
/月/我手挈花课程设计(论文)
五课程设计总结
该课程设计主要是通过C语言里的文件操作对文件进行读写操作,来实
现一个账簿管理系统,从这一点上类似于一个小型的文件类型数据库。基本
的的对于文件里的增删改查的功能都在该程序里实现了,界面搭建的也很友
好,提示性输出语句很多,操作起来也比较方便。查询的文件可以通过一个.txt
文件显示出来,也可以指定对应文件里的对应月份的数据打印在控制条中。
并且可以通过该程序实现对多文件的管理操作,在这一点上与一个文件型
DBMS是一样的(当然功能没有那么强大)。
在整个程序的编写过程中遇到的最大困难就是关于文件的读写,以及如何
以一种良好的格式输出让用户看的更加清晰直观。最先我们对文件操作函数
里的模式字符串的含义理解比较含糊,没有正确的使用以及文件操作了以后
忘了重定向文件指针的位置导致文件指针指向异常往往在某些时候的测试下
与我们所期待实现的功能大相径庭,所以我们在文件指针操作之前都会先将
指针的位置定位好。另外如我们在功能2中以一个.txt文件将整个文件的数据
都输出出来了,在这里格式就看起来比较舒服,但最先的时候显示的效果并
不是这样的。我们当时忽略了windows里的换行与dos命令控制台里的换行
的转义字符是不一样的,所以无论怎样使用W最后结果都是所有的数据都挤
在了一排显得特别难看,但是后来突然想起来在windows中的换行使用的
是后来替换掉了后一经调试就达到了满意的输出效果。另外在整个程
序中是分模块来编写的,怎样使各个模块能共享数据又成了一大难题,后来
经过讨论我们决定整个程序在主函数中创建一个Infor类型的指针变量,通过
26
鹏月,挈花课程设计(论文)
指针变量我们就可以方便的共享其所指向的内存区域以达到共享数据的效
果。
整个程序的缺点在于该程序的某些步骤操作起来比较繁琐,比方说前面的
修改数据项的功能,在前面已经指定好了一个文件名,在后面又要重新指定
一遍文件名,这个问题主要是因为分模块编写所造成的缺陷,曾经想到用一
个全局变量来弥补该缺陷,但是后来由于时间的问题一旦修改必然又会对整
个程序大动干戈进行一番修改就此作罢。另外整个程序设计的异常处理很不
完善,但这个责任也不全然在于我们身上,因为C语言是面向过程的语言,
它并不具备类似C++、JAVA里强大的异常处理机制(没有定义那么多的异常
类),所以整个程序虽然可以正常的运行使用,但并不健壮,一旦遇到非法的
操作程序就必然崩溃,如果采用C++或JAVA这样的面向对象语言来进行编
程的话程序应该可以设计的更加完善一些。
毕竟是一个账簿管理系统,对于不同的用户我们应该限制不同的使用权
限。关于本程序的进一步设想就是我希望能够实现一个用户权限管理,可以
通过不同的文件操作模式字符串来指定不同类型的用户有不同权限的操作。
比方说有的用户我们就在打开文件时给他指定“只读”类型,那么他在整个
操作过程中就只能进行查询,而不能创建,增加,删除,修改数据,而有的
级别比较高的用户我们就给他指定为“既可读既可写”类型,那么他在整个
程序的操作过程中就拥有最高的权限可以对数据进行任意的操作。如果这样
修改成功了以后的话就该程序就真真正正的实现了一个小型的文件DBMS。
总的来说做完这一次课程设计题目以后使我原本比较薄弱的文件操作知
识得到了加强并且也将数据库课当中学到的一些数据库的思想也能在该程序
中得到了一定的体现,收获还是很大的。
27
/月/我手挈花课程设计(论文)
参考文献
[1]谭浩强,C程序设计题解与上机指导(第
二版),北京,清华大学出版社,2000年9月。
[2]StephenPrata,Cprimerplus(第四版),
北京,人民邮电出版社,2005年2月。
⑶严蔚敏《数据结构(C语言版)》北京,
清华大学出版社,2007年3月
⑷谭浩强《C程序设计(第四版)》,北京,
清华大学出版社,
28
/月/我手挈花课程设计(论文)
附录
#include<stdio.h>
#include<stdlib.h>
#includc<string.h>
#defincOK1
#defineERROR0
29
/月/我手挈花课程设计(论文)
#defineTRUE1
〃个人信息
typedefstruct{
intmonth;
intshipin;
intfangzu;
intzinv;
intshuidian;
intyiliao;
intchuxu;
intshouru;
}Infor;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工商银行培训学习
- 黄梅县2025年春季八年级期末质量监测历史试题
- 腿部保养培训课件
- 道路安全驾驶培训课件
- 普洱医院礼仪培训课件
- 讲师培训行业分析
- 子宫内膜超声诊断
- 手术护理实践指南:双极电凝
- 益盟企业培训
- 产品培训课件制作流程
- 2025年山东产权交易集团有限公司招聘笔试参考题库含答案解析
- 《浙江市政预算定额(2018版)》(第七册-第九册)
- DB32-T 4878-2024 居住区供配电设施建设标准
- 2025年河北交通投资集团公司招聘笔试参考题库含答案解析
- 药品配送包装及运输方案
- 经济师考试知识产权高级经济实务新考纲题库详解(2025年)
- 新课标(水平三)体育与健康《篮球》大单元教学计划及配套教案(18课时)
- 医院培训课件:《失血性休克的急救护理》
- 2024年北京市中考生物真题卷及答案解析
- 华东理工大学《药物设计与新药发现-小分子药物》2023-2024学年第一学期期末试卷
- 新质生产力促进辽宁经济高质量发展研究
评论
0/150
提交评论