资源简介
结合数据结构用c语言写的管理系统。
本系统主要有以下功能模块:
1)录入新信息功能:
包括新用户信息和新报刊信息的录入功能,
信息一旦提交就存入到后台数据库中。
2)订阅功能:
用户可以订阅报刊,系统自动计算所需金额,并显示在界面上。
3)查询功能:
可以查询用户所订阅的信息;查询出的信息显示在界面上。
代码片段和文件信息
#include
#include
#include
typedef int status;
typedef struct information {
int index; /*报刊代号*/
char bn[40]; /*报刊名称*/
float price; /*每月报价*/
int user; /*用户编号*/
char name;/*用户真实姓名*/
int phone;/*联系电话*/
int order;/*订单编号*/
int number;/*订阅份数*/
int month;/*订阅月数*/
struct information *next; /*结点指针域*/
} Bk_list; /*表示信息的数据类型*/
/*下面的函数表示录入新的信息*/
Bk_list * entry(Bk_list *head Bk_list *s) {
Bk_list *p*pre; /*工作指针*/
pre=head;p=head->next;
while (p && p->indexindex) /*查找*/
{ pre=p;p=p->next;}
s->next=pre->next;
pre->next=s;
return head;
}
/*下面函数的功能是存盘,当数据信息发生变化的时候,存盘*/
void save_file(Bk_list *head) {
FILE* fp;
Bk_list *p;
fp=fopen(“book.txt““wb“); /*以只写方式打开二进制文件*/
if(fp==NULL){ /*打开文件失败*/
printf(“\n open file error!\n“);
return;
}
p=head->next; /*当前链表中所有数据写入内存*/
while(p){
fwrite(psizeof(Bk_list)1fp);/*每次写一条记录或一个节点信息至文件*/
p=p->next;
}
fclose(fp); /*关闭此文件*/
}
/*下面函数的功能是查找报刊信息*/
/*把查找结果存放到内存文件中保存*/
void query (Bk_list *head int *s) {
Bk_list *p;
FILE* fp;
fp=fopen(“bookcpy.txt““wb“);/*以只写方式打开二进制文件*/
if(fp==NULL){
printf(“\nopen file error!\n“);
return ;
}
p=head->next;
while(p) { /*查找记录,同时往文件中写入找到信息*/
if(*s==p->user)
fwrite(psizeof(Bk_list)1fp);
p=p->next;
}
fclose (fp);
}
status subscribe(Bk_list *head int *sint *tint *r){
Bk_list *p;
FILE* fp;
fp=fopen(“bookcpy.txt““wb“);
p=head->next;
float mn;
n=p->price*p->month;
m=p->number*n;
return m;
printf(“\nThe total cost is %f \n“&m);
}
/*主函数中,把文件中的信息读出*/
/*构成一个带有头结点的单链表*/
/*在单链表中进行操作*/
main(){
Bk_list *head; /*定义链表*/
FILE *fp; /*文件指针*/
Bk_list *p*r; /*定义记录指针变量*/
float x;/*中间变量*/
int m; /*选择进行的操作*/
char c; /*输入‘y‘或者‘n‘的信息*/
head=( Bk_list *)malloc(sizeof( Bk_list)); /*head为带有头结点的单链表指针*/
head->next=NULL;
r=head; /*以写的方式打开一个二进制文件若此文件不存在,会创建此文件*/
fp=fopen(“book.txt““rb“);
if(fp==NULL){
printf(“\ncan not open file!\n“);
exit(0);
}
/*从文件中读出报刊记录,放到链表中存放*/
while(!feof(fp)){
p=(Bk_list*)malloc(sizeof(Bk_list));
if(fread(psizeof(Bk_list)1fp)==1){ /*一次从文件中读取一条记录*/
p->next=NULL;
r->next=p; /*链接到链表的尾部*/
r=p; /*r指针向后移一个位置*/
}
}
fclose(fp); /*关闭文件*/
while(1){ /*根据选择进行相应的操作*/
printf(“\n\t\t*********欢迎使用报刊订阅管理系统*********\n\n“);
printf(“\n\t\t若要录入新信息,请按1“);
printf(“\n\t\t若要订阅报刊,请按2“);
printf(“\n\t\t若要查询相关信息,请按3“);
printf(“\n\t\t********************************************\n\n“);
printf(“Please select(0~3):“);
scanf(“%d“&m);
if(m>=0&&m<=3)
{
switch(m)
{
case 1: printf(“请录入信息:\n“);
p=(Bk_list*)malloc(sizeof(Bk_list));
printf(“in
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-06-10 23:41 数据结构-报刊管理系统\
目录 0 2011-06-10 23:42 数据结构-报刊管理系统\报刊管理系统\
文件 214528 2011-06-10 23:41 数据结构-报刊管理系统\报刊管理系统.ppt
文件 861 2011-05-25 10:40 数据结构-报刊管理系统\报刊管理系统\book.txt
文件 0 2011-05-25 12:27 数据结构-报刊管理系统\报刊管理系统\bookcpy.txt
目录 0 2011-06-10 23:40 数据结构-报刊管理系统\报刊管理系统\Debug\
文件 10692 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\Debug\file19.obj
文件 41984 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\Debug\vc60.idb
文件 53248 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\Debug\vc60.pdb
文件 15725 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\Debug\报刊订阅管理系统.obj
文件 222152 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\Debug\报刊订阅管理系统.pch
文件 476160 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\Debug\报刊订阅管理系统.pdb
文件 5670 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\报刊订阅管理系统.cpp
文件 3598 2011-05-25 12:34 数据结构-报刊管理系统\报刊管理系统\报刊订阅管理系统.dsp
文件 557 2011-05-25 12:34 数据结构-报刊管理系统\报刊管理系统\报刊订阅管理系统.dsw
文件 50176 2011-05-25 12:34 数据结构-报刊管理系统\报刊管理系统\报刊订阅管理系统.ncb
文件 48640 2011-05-25 12:34 数据结构-报刊管理系统\报刊管理系统\报刊订阅管理系统.opt
文件 1685 2011-05-25 12:33 数据结构-报刊管理系统\报刊管理系统\报刊订阅管理系统.plg
目录 0 2011-06-10 23:40 数据结构-报刊管理系统\报刊管理系统\新建文件夹\
文件 4212 2011-05-24 10:22 数据结构-报刊管理系统\报刊管理系统\新建文件夹\FILE19.C
文件 5670 2011-05-25 12:33 数据结构-报刊管理系统\报刊订阅管理系统.cpp
文件 6982 2011-05-25 13:02 数据结构-报刊管理系统\程序1--管理者.txt
- 上一篇:Gabor滤波器C++程序
- 下一篇:C语言名题精选百则源代码
评论
共有 条评论