四个人用C语言做一个小项目该如何分工呢?比如做一个图书馆管理系统

作者&投稿:阳程 (若有异议请与网页底部的电邮联系)
怎样用C语言制作图书馆管理系统~

这个是自己写的
注释很清楚地

有什么不清楚的问我

#include
#include
#include
#include

struct books_list
{

char author[20]; /*作者名*/
char bookname[20]; /*书名*/
char publisher[20]; /*出版单位*/
char pbtime[15]; /*出版时间*/
char loginnum[10]; /*登陆号*/
float price; /*价格*/
char classfy[10]; /*分类号*/
struct books_list * next; /*链表的指针域*/
};

struct books_list * Create_Books_Doc(); /*新建链表*/
void InsertDoc(struct books_list * head); /*插入*/
void DeleteDoc(struct books_list * head , int num);/*删除*/
void Print_Book_Doc(struct books_list * head);/*浏览*/
void search_book(struct books_list * head); /*查询*/
void info_change(struct books_list * head);/*修改*/
void save(struct books_list * head);/*保存数据至文件*/

/*新建链表头节点*/
struct books_list * Create_Books_Doc()
{
struct books_list * head;
head=(struct books_list *)malloc(sizeof(struct books_list)); /*分配头节点空间*/
head->next=NULL; /*头节点指针域初始化,定为空*/
return head;
}

/*保存数据至文件*/
void save(struct books_list * head)
{
struct books_list *p;
FILE *fp;
p=head;
fp=fopen("data.txt","w+"); /*以写方式新建并打开 data.txt文件*/
fprintf(fp,"┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓
"); /*向文件输出表格*/
fprintf(fp,"┃登录号┃ 书 名 ┃ 作 者┃ 出版单位 ┃ 出版时间 ┃分类号┃ 价格 ┃
");
fprintf(fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫
");
/*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/
while(p->next!= NULL)
{
p=p->next;
fprintf(fp,"┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃
",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price);
}
fprintf(fp,"┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛
");
fclose(fp);
printf(" 已将图书数据保存到 data.txt 文件
");
}

/*插入*/
void InsertDoc(struct books_list *head)
{
/*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/
struct books_list *s, *p;
char flag='Y'; /*定义flag,方便用户选择重复输入*/
p=head;
/*遍历到尾结点,p指向尾结点*/
while(p->next!= NULL)
{
p=p->next;
}
/*开辟新空间,存入数据,添加进链表*/
while(flag=='Y'||flag=='y')
{
s=(struct books_list *)malloc(sizeof(struct books_list));
printf("
请输入图书登陆号:");
fflush(stdin);
scanf("%s",s->loginnum);
printf("
请输入图书书名:");
fflush(stdin);
scanf("%s",s->bookname);
printf("
请输入图书作者名:");
fflush(stdin);
scanf("%s",s->author);
printf("
请输入图书出版社:");
fflush(stdin);
scanf("%s",s->publisher);
printf("
请输入图书出版时间:");
fflush(stdin);
scanf("%s",s->pbtime);
printf("
请输入图书分类号:");
fflush(stdin);
scanf("%s",s->classfy);
printf("
请输入图书价格:");
fflush(stdin);
scanf("%f",&s->price);
printf("
");
p->next=s; /*将新增加的节点添加进链表*/
p=s; /*p指向尾节点,向后移*/
s->next=NULL;
printf(" ━━━━ 添加成功!━━━━");
printf("
继续添加?(Y/N):");
fflush(stdin);
scanf("%c",&flag);
printf("
");
if(flag=='N'||flag=='n')
{break;}
else if(flag=='Y'||flag=='y')
{continue;}
}
save(head); /*保存数据至文件*/
return;
}

/*查询操作*/

void search_book(struct books_list *head)
{
struct books_list * p;
char temp[20];
p=head;
if(head==NULL || head->next==NULL) /*判断数据库是否为空*/
{
printf(" ━━━━ 图书库为空!━━━━
");
}
else
{
printf("请输入您要查找的书名: ");
fflush(stdin);
scanf("%s",temp);
/*指针从头节点开始移动,遍历至尾结点,查找书目信息*/
while(p->next!= NULL)
{
p=p->next;
if(strcmp(p->bookname,temp)==0)
{
printf("
图书已找到!
");
printf("
");
printf("登录号: %s
",p->loginnum);
printf("书名: %s
",p->bookname);
printf("作者名: %s
",p->author);
printf("出版单位: %s
",p->publisher);
printf("出版时间: %s
",p->pbtime);
printf("分类号: %s
",p->classfy);
printf("价格: %.2f
",p->price);
}
if(p->next==NULL)
{
printf("
查询完毕!
");
}
}
}
return;
}

/*浏览操作*/

void Print_Book_Doc(struct books_list * head)
{
struct books_list * p;
if(head==NULL || head->next==NULL) /*判断数据库是否为空*/
{
printf("
━━━━ 没有图书记录! ━━━━

");
return;
}
p=head;
printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓
");
printf("┃登录号┃ 书 名 ┃ 作 者┃ 出版单位 ┃ 出版时间 ┃分类号┃ 价格 ┃
");
printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫
");
/*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/
while(p->next!= NULL)
{
p=p->next;
printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃
",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price); /*循环输出表格*/
}
printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛
");
printf("
");
}


/*修改操作*/
void info_change(struct books_list * head)
{
struct books_list * p;
int panduan=0; /*此变量用于判断是否找到书目*/
char temp[20];
p=head;
printf("请输入要修改的书名:");
scanf("%s",temp);
while(p->next!= NULL)
{
p=p->next;
if(strcmp(p->bookname,temp)==0)
{
printf("
请输入图书登陆卡号:");
fflush(stdin);
scanf("%s",p->loginnum);
printf("
请输入图书书名:");
fflush(stdin);
scanf("%s",p->bookname);
printf("
请输入图书作者名:");
fflush(stdin);
scanf("%s",p->author);
printf("
请输入图书出版社:");
fflush(stdin);
scanf("%s",p->publisher);
printf("
请输入图书出版时间:");
fflush(stdin);
scanf("%s",p->pbtime);
printf("
请输入图书分类号:");
fflush(stdin);
scanf("%s",p->classfy);
printf("
请输入图书价格:");
fflush(stdin);
scanf("%f",&p->price);
printf("
");
panduan=1;
}
}
if(panduan==0)
{
printf("
━━━━ 没有图书记录! ━━━━

");
}
return;
}


/*删除操作*/
void DeleteDoc(struct books_list * head)
{
struct books_list *s,*p; /*s为中间变量,p为遍历时使用的指针*/
char temp[20];
int panduan; /*此变量用于判断是否找到了书目*/
panduan=0;
p=s=head;
printf(" [请输入您要删除的书名]:");
scanf("%s",temp);
/*遍历到尾结点*/
while(p!= NULL)
{
if(strcmp(p->bookname,temp)==0)
{
panduan++;
break;
}
p=p->next;
}
if(panduan==1)
{
for(;s->next!=p;) /*找到所需删除卡号结点的上一个结点*/
{
s=s->next;
}
s->next=p->next; /*将后一节点地址赋值给前一节点的指针域*/
free(p);
printf("
━━━━ 删除成功! ━━━━
");
}
else /*未找到相应书目*/
{
printf(" 您输入的书目不存在,请确认后输入!
");
}
return;
}


int main(void)
{
struct books_list * head;
char choice;
head=NULL;
for(;;) /*实现反复输入选择*/
{
printf(" ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓
");
printf(" ┃ ┃ socat 图书管理系统 ┃ ┃
");
printf(" ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃
");
printf(" ┃ ●[1]图书信息录入 ┃
");
printf(" ┃ ┃
");
printf(" ┃ ●[2]图书信息浏览 ┃
");
printf(" ┃ ┃
");
printf(" ┃ ●[3]图书信息查询 ┃
");
printf(" ┃ ┃
");
printf(" ┃ ●[4]图书信息修改 ┃
");
printf(" ┃ ┃
");
printf(" ┃ ●[5]图书信息删除 ┃
");
printf(" ┃ ┃
");
printf(" ┃ ●[6]退出系统 ┃
");
printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛
");
printf(" 请选择:");
fflush(stdin);
scanf("%c",&choice);
if(choice=='1')
{
if(head==NULL)
{
head=Create_Books_Doc();
}
InsertDoc(head);

}
else if(choice=='2')
{
Print_Book_Doc(head);
}
else if(choice=='3')
{
search_book(head);
}
else if(choice=='4')
{
info_change(head);
}
else if(choice=='5')
{
DeleteDoc(head);
}
else if(choice=='6')
{
printf("
");
printf(" ━━━━━━━━ 感谢使用图书管理系统 ━━━━━━━━
");
break;
}
else
{
printf(" ━━━━ 输入错误,请重新输入!━━━━");
break;
}
}
return 0;
}

建议采用模块化,自顶向低的编程思路
主函数只负责绘制菜单,根据用户的选择跳入对应功能。
然后各个功能有一个函数单独编写实现,调试,最后组装完成。
如果你的系统需要实现添加、保存、修改、删除、排序等功能,建议采用文件读写
可能会用到如下函数
strcmp(字符串比较函数,用于查找)
fprintf/fscanf/fopen/fclose(文件读写函数)
并且可能会用到结构体数组

如果您有需要,可以私信我,我可以帮您代写。
谢谢

传统意义上的项目管理软件更多的是管理项目的资源、任务、进度、质量,而忽略了项目管理的最终目标——项目成本控制。诺明软件为例,通过项目管理软件,可全面核算各类项目成本,其中包括人工、费用、材料、设备、管理分摊、外包等项目成本的精细化管理,帮助财务人员轻松完成项目成本核算过程,同时帮助项目经理实时了解项目实际产生的各项成本。

首先四个人都要了解整个流程,该流程划分几个模块等。(即:资讯)
模块可以根据程序结构模块来划分,如图书馆管理系统要有欢迎界面,密码验证,写入图书信息,删除图书信息等等程序模块。(即:计划)
四个人分别负责2-3个模块,最后有一个能力强的负责程序的合并,一个负责检测,当然也可以四个都参与合并和检测工作,记录出现的问题。(即:实施)
最后总结。(即总结报告)
最后做个PPT(如果要做报告可以做一个)。

项目分析,
要什么样的效果
需要哪些模块,比如需要1个主模块 20个子模块。
4个人。按时间分配模块。
A 1个主模块+2个
B/C/D 6个子模块

图书管理系统的程序你可以百度一下嘛,看别人的系统分哪几部分去实现的。你们首先应该知道图书 管理系统应该去实现那些功能,借书功能,还书功能,查询功能,修改呀,等等,你把大体框架流程写下来,看需要那几个功能模块。然后每个大的功能模块规定好输入参数,输出参数。就让其他人自己去实现这个功能。然后把每个功能模块组合起来就是了。

只能采用并行式分工了, 划分模块,每人一块。


求一个C语言做的《个人通讯录》 谢谢 考试用 要正确的
{ char c;logon();do{ system("cls");printf("\\t\\t***通讯录管理系统***\\n\\n \\n");printf("\\t\\t ***\\n");printf("\\t\\t 1. 添加记录 \\n");printf("\\t\\t 2. 显示记录 \\n");printf("\\t\\t 3. 删除记录 \\n");printf("\\t\\t ...

C语言,定义一种结构类型,能实现一个人的姓名,年龄,身高,体重信息_百度...
main() { printf("请输入您的姓名、年龄、身高cm、体重kg(空格分开):\\n");scanf("%s %d %d %f",&p.name,&p.age,&p.high,&p.weight);printf("您的个人信息:姓名:%s,年龄:%d岁,身高:%dcm,体重:%0.2fkg\\n",p.name,p.age,p.high,p.weight); return 0;}运行:...

用c语言编程以*做一个矩形边框的个人名片 里面含有(姓名,性别,职业...
"* 675032915 *", "*银河系街地球小区1栋1单元101*", "***"};for(i=0;i<7;i++){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9+i); printf("%s\\n",a[i]);}}如图所示,望采纳。。。

用C语言二维数组编程一个输入20个人的成绩和学号输出平均分的程序可以编...
include<stdio.h> include<string.h> int main(){int n,i=0,max=0,s=0,a[100]; \/\/ 不需要最高分把 max=0, 删去 char name[100][20];float x,y;printf("请输入学号和成绩,以空行表示结束输入:\\n");while(1){fflush(stdin);gets(name[i]);if(strlen(name[i])==0)break;...

c语言共用体实现设计个人名片,包含姓名,职业,电话
\/\/共用体实例 你看看行不#include <stdio.h>#include <windows.h>#include <string.h>\/\/共用体union businessCard{char name[20]; \/\/存储姓名char job[20]; \/\/存储职业char phoneNum[13]; \/\/存储电话号码};void main(void){businessCard card;FILE *fp;if(!(fp=fopen("businessCard....

用C语言编写
int j=1; strcat(c, "\\n"); \/\/从外部读入的字符串末尾都带了一个换行符 while( p!=NULL && !(check(c, p->pe.name))) \/\/查找第 i 个节点并由 p 指向该节点 { j++; p=p->next; } return p; } int List::find2(char c[]) \/\/通过查找姓名返回节点的序号 { nodetype* p=head; int...

如何编写C语言程序使得输入编号就可以显示其他的个人信息
p=fopen("list.txt","r"); if(p==NULL) { fclose(p); p=fopen("list.txt","w"); fclose(p); }3、写一个简单的界面(可以用死循环)while(1) { n=0; p=fopen("list.txt","r"); while(fscanf(p,"%s%s%s",people[n].name,people[n].phone,p...

急!C语言共用体实现设计个人名片,包含姓名,职业,电话
union personal_card { char name[15];char prafession[10];long int tel;};union是声明其为共用体,name,professin,tel分别代表姓名,职业,电话。

c语言编写一个选票统计程序4个候选人分别用ABCD表示,现有20人进行投票...
include <stdio.h> void main(){ int i=1;char j;int num[4]={0,0,0,0};printf("共4位候选人,分别为A,B,C,D,开始投票\\n");while(i<=20){ printf("请输入第%d个的选票",i);scanf("%c",&j);switch(j){ case 'A':num[0]++;i++;break;case 'B':num[1]++;i++;...

C语言编写一个教务管理系统 注:可以把这个程序也发我一下吗
2014-01-12 用c语言编教务管理系统 2 2012-12-19 用c语言或c++编程做教务处课程管理系统 2011-06-21 跪求c语言教务管理系统源代码 13 2019-04-21 C语言教务管理系统(马上就要交了啊,急求) 2016-01-29 做一个基于c语言的教务系统网站,我需要用到什么软件 1 2009-04-16 求C语言课程设计(教务信息...

南谯区15958197850: 四个人用C语言做一个小项目该如何分工呢?比如做一个图书馆管理系统 -
宥黛利君: 传统意义上的项目管理软件更多的是管理项目的资源、任务、进度、质量,而忽略了项目管理的最终目标——项目成本控制.诺明软件为例,通过项目管理软件,可全面核算各类项目成本,其中包括人工、费用、材料、设备、管理分摊、外包等项目成本的精细化管理,帮助财务人员轻松完成项目成本核算过程,同时帮助项目经理实时了解项目实际产生的各项成本.

南谯区15958197850: 编写C语言程序,模拟将一副扑克牌54张随机分给4个人 (如何表达不同花色和大小,如何高效洗牌) -
宥黛利君: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() {int poke[13][4],joker[2],last_four_card[4]; //定义四类十三张牌、双王int i,j,card,count,tank[54],player[20],computer[2][20];bool flag;srand(time(NULL)); //初始化随机种子for(i=...

南谯区15958197850: 我和室友想用C语言或者JAVA做项目,意思就是我和宿舍的几个人,感觉学了几年的软件编程了 -
宥黛利君: 个人觉得 第一先确定要做什么;第二要为程序做架构,比如想想这个程序需要有哪些功能;第三要就按照需求分工,比如说:分为做界面和写程序实现的;第四就是调试,接着推广,最后完成项目,结项.我也是个学生,这是我的想法,不知道可不可行,希望能帮你点忙.

南谯区15958197850: 怎么用C语言做项目 -
宥黛利君: 所谓项目,在一定的时间内,利用有限的资源和时间,完成特定的目的,这就是项目.Turbo C 是一种工具,它有它擅长的地方,也有它不擅长的地方我98年接过一个项目,用TC开发,结果失败,前前后后写了10000多行代码,只完成了一个...

南谯区15958197850: 4个人 做一个 类型 C语言的软件 要多久?? -
宥黛利君: 如果全部从头做起的话,估计最乐观都要3~6个月,而且这个只是做出一个雏形,还不保证稳定.但你们可以利用现在一些开源的东西啊,至少语法检查、优先级等利用起来是没有问题啊.

南谯区15958197850: 计算机等级考试二级c语言设计题是怎么判分的? -
宥黛利君: 等级考试机试的玄机是计算机改分.也就是说,上机成绩不是由人评改的.等级考试的上机考试是分批进行的,在相邻两批考生之间,有监考人员做“收分”工作,即改分.也就是说,当你考完机试后,你的上机成绩就已经出来了,只是我们...

南谯区15958197850: a,b,c,d四人共同制作一批灯笼.a占其他三人总数的13分之二,b占其他三人总数的四分之一,c占 -
宥黛利君: a:其他三人=2:13 占总数的2/15b:其他三人=1:4 b占总数的1/5=3/15c:其他三人=4:11 c占总数的4/15d占总数的:1-2/15-3/15-4/15=6/15设总数为x(6/15)x=6 x=1515-6=9答:abc三人共制作了9个

南谯区15958197850: C语言:有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事. -
宥黛利君:#include int A,X;void main () {for(A = 'A'; A <= 'D';A++) {X = (A != 'A') + (A == 'C') + (A == 'D') + (A !=' D');if(X == 3) {printf("%c做好事\n",A);break;}}if(A > 'D') printf("没人做好事");}

南谯区15958197850: 快来做做,一个C语言小“工程”
宥黛利君: 恩 不值得做,,不过还是给你东西让你参考一下 学习要勤快 不可以不劳而获~~~~哈 一、题目要求: 按照如下要求编写程序. 1. 定义一个用于描述学生信息的结构类型,其中包括三个成员,分别用于描述学号、姓名和成绩. 2. 定义一个数组,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网