文档库 最新最全的文档下载
当前位置:文档库 › C++课程设计报告(简单通讯录管理)

C++课程设计报告(简单通讯录管理)

C++课程设计报告(简单通讯录管理)
C++课程设计报告(简单通讯录管理)

C++语言课程设计报告

一、课题名称:简单通讯录管理

二、程序功能:

一个简单的通讯录管理程序,具有插入、删除、显示、修改和查询联系人通讯方式等功能。三、课题分析;

本课程设计的数据有每个人的姓名,电话号码和Email地址,并且所有人的数据默认以

姓名为关键字按升序排放,排序方式可修改,同时为了减少执行“添加”、“删除”等过

于复杂和繁琐的操作,采用单向链表来进行数据的存储和操作。同时需要一个文本文件

来存储联系人信息,数据可从该文本文件中导出。

四、设计中的问题与解决方法:

从文本文件中载入数据时,出现不能读的情况,解决的办法是分情况,写程序分别进行处理。

此外从文本文件中载入数据时,出现不同类数据合并现象,原因是数据之间无空格,解决方法是增大字段占用宽度。

五、对设计的感想和心得:

程序的编写应是:三分编写,七分调试;

熟能生巧,这次在用指针处理单向链表时, 感觉很吃力,以前对这块内容并不十分清楚,所以在今后的编程之中,尽可能把基本技能练习熟练;

为了方便使用,我选择了汉化菜单;

3.程序源代码(及简单注释):

主函数如下:

#include

#include

#include

#include

#include

#include

#include"简单通讯录.h"

void add(AddrList &addrlist)//增加记录

{

char name[10];//姓名

char mobilephone[15];//手机号码

char email[20];//Email地址

Node *nodeptr;//定义一个Node类对象

nodeptr=new Node;

cout<<"请依次输入:\n姓名手机号码 Email地址"<

cin>>name>>mobilephone>>email;

nodeptr->SetName(name);//调用类内置入函数给结点赋值

nodeptr->SetMobilePhone(mobilephone);

nodeptr->SetEMail(email);

addrlist.AddSort(nodeptr);

cout<<"添加成功!\n";

cin.get();

cin.get();

} void del(AddrList &addrlist) //删除记录

{

char name[10],c;

cout<<"请输入要删除的姓名\n";

cin>>name;

cout<<"你确定要删除"<

cin>>c;

if(c=='y'||c=='Y')

addrlist.Delete(name);//调用addrlist类的删除成员函数cin.get();

cin.get();

}

void showall(AddrList &addrlist) //显示所有记录

{

addrlist.ShowAll();//调用addrlist的成员函数

cin.get();

cin.get();

}

void query(AddrList &addrlist) //按姓名查找并显示一条记录

{

char name[10];//姓名

Node *p;

cout<<"请输入要显示的姓名!\n";

cin>>name;

cout<

int tag=1;

if(addrlist.GetTag()!=tag)

addrlist.Sort(tag);

if(p=addrlist.LookUp(name))

p->Show();

else

cout<<"没有"<

cin.get();

cin.get();

}

void modify(AddrList &addrlist) //按姓名修改一条记录

{

char name1[10];

Node *p;

cout<<"请输入要修改项的姓名!\n";

cin>>name1;

if(addrlist.GetTag()==1)

p=addrlist.LookUp(name1);

cout<<"修改什么? 姓名(1) 手机号码(2) Email地址(3)\n请选择:\n";

int n,tag;

cin>>n;

char name[10],mobilephone[15],email[20];

if(n==1)

{

cout<<"请输入修改后的姓名!\n";

cin>>name;

p->SetName(name);

tag=1;

addrlist.Sort(tag);

}

else if(n==2)

{

cout<<"请输入修改后的手机号码!\n";

cin>>mobilephone;

p->SetMobilePhone(mobilephone);

tag=2;

addrlist.Sort(tag);

}

else

{

cout<<"请输入修改后的Email地址!\n";

cin>>email;

p->SetEMail(email);

}

cout<<"修改成功!\n";

cin.get();

cin.get();

}

void addfromtxtfile(AddrList &addrlist) //从正文文件中添加数据到库表中{

char filename[26];

cout<<"从哪个文件中添加数据?\n请输入文件名:\n";

cin>>filename;

ifstream in(filename,ios::nocreate);

if(!in)

{

cout<<"不能打开"<

return;

}

char name[10],mobilephone[15],email[20];

Node *nodeptr;

int nodenum,i;

in>>nodenum;

for(i=0;i

{

nodeptr=new Node;

in>>name>>mobilephone>>email;

nodeptr->SetName(name);

nodeptr->SetMobilePhone(mobilephone);

nodeptr->SetEMail(email);

addrlist.AddSort(nodeptr);

}

cout<<"添加成功!\n";

in.close();

cin.get();

cin.get();

}

void writetotxtfile(AddrList &addrlist) //将库表中的数据导出到征文文件

{

Node *nodeptr=addrlist.GetHeadPtr();

if(nodeptr==NULL)

cout<<"无数据!\n";

else

{

char filename[26];

cout<<"将数据导入那个文件?\n请输入文件名:\n";

cin>>filename;

fstream out(filename,ios::out);

if(!out)

{

cout<<"不能打开"<

return;

}

int nodenum=0,i;

while(nodeptr)

{

nodenum++;

nodeptr=nodeptr->Getnext();

}

out<

nodeptr=addrlist.GetHeadPtr();

for(i=0;i

{

out<GetName()<GetMobilePhone()<GetEMail()<

nodeptr=nodeptr->Getnext();

}

cout<<"写入成功!\n";

out.close();

cin.get();

cin.get();

}

}

void sort(AddrList &addrlist) //排序库链表

{

int tag;//排序标志

char c;//判断标志

tag=addrlist.GetTag();

if(tag==1)

{

cout<<"现在是按名字排序!\n";

cout<<"您确定要按手机号码排序吗? [是(y)/否(n)]\n";

}

else

{

cout<<"现在是按手机号码排序!\n";

cout<<"您确定要按名字排序吗? [是(y)/否(n)]\n";

}

cin>>c;

if(c=='y'||c=='Y')

{

if(tag==1) tag=2;

else tag=1;

}

addrlist.Sort(tag);

cin.get();

cin.get();

}

void dela(AddrList &addrlist) //删除所有记录

{

char c;

cout<<"您确定要删除全部记录吗? [是(y)/否(n)]\n";

cin>>c;

if(c=='y'||c=='Y')

{

addrlist.~AddrList();

cout<<"已全部删除!\n";

}

else

cout<<"未删除!\n";

cin.get();

cin.get();

}

void quit(AddrList &addrlist) //退出系统,内部做到结尾工作{

addrlist.WriteToFile("AddrList.dat");

}

int menu_select();

void main() //主函数

{

AddrList addrlist;

addrlist.CreateList("addrlist.dat");

for( ; ; )

{

switch(menu_select())

{

case 1:

add(addrlist);

system("pause");

break;

case 2:

del(addrlist);

system("pause");

break;

case 3:

showall(addrlist);

system("pause");

break;

case 4:

query(addrlist);

system("pause");

break;

case 5:

modify(addrlist);

system("pause");

break;

case 6:

addfromtxtfile(addrlist);

system("pause");

break;

case 7:

writetotxtfile(addrlist);

system("pause");

break;

case 8:

sort(addrlist);

system("pause");

break;

case 9:

dela(addrlist);

system("pause");

break;

case 0:

quit(addrlist);

system("pause");

exit(0);

}

}

}

int menu_select() //选择函数

{

char *m[11]={"1.增加一条记录",

"2.删除一条记录",

"3.显示所有记录",

"4.按姓名修改查找并显示一条记录",

"5.按姓名修改查找并修改一条记录",

"6.从文件中添加数据到库表中",

"7.将库表中的数据写入文件",

"8.排序",

"9.清空",

"0.退出系统"};

int i;

char c;

do{

system("cls");/*清屏*/

cout<<"\n\n======欢迎使用通讯录管理系统======\n\n";

for(i=0;i<10;i++)

cout<

cout<<"\n==================================\n";

cout<<"请选择(1-9,0):";

cin>>c;

}while(c<'0'||c>'9');

return(c-'0');

}

头文件如下:

class Node //节点类

{

char Name[10];//姓名

char MobilePhone[15];//手机号码

char EMail[20];//email地址

Node *next;//下一结点指针

public:

Node(char *name=NULL,char *mobilephone=NULL,char *email=NULL) //构造函数,各参数均有缺省值

{

if(name)

strcpy(Name,name);

else strcpy(Name," ");

if(mobilephone)

strcpy(MobilePhone,mobilephone);

else strcpy(MobilePhone," ");

if(email)

strcpy(EMail,email);

else strcpy(EMail," ");

}

void Show() //显示节点数据

{

cout<

}

void SetName(char name[]) //修改姓名

{

strcpy(Name,name);

}

void SetMobilePhone(char mobilephone[]) //修改手机号码

{

strcpy(MobilePhone,mobilephone);

}

void SetEMail(char email[]) //修改email地址

{

strcpy(EMail,email);

}

char *GetName() //返回姓名地址

{

return Name;

}

char *GetMobilePhone() //返回手机号码地址

{

return MobilePhone;

}

char *GetEMail() //返回Email地址

{

return EMail;

}

Node *Getnext() //返回next

{

return next;

}

friend class AddrList; //将AddrList类说明为友元类

};

class AddrList //AddList链表类

{

Node *HeadPtr; //链表首指针

Node *TailPtr; //链表为指针

int Tag; //排序状态标志,tag=1时按姓名排;tag=2时按手机号码排

public:

AddrList(); //构造函数,创建空链表,将tag设为1

void AddTail(Node *p);//将p指向的结点加入到链表尾部

void AddSort(Node *p);//将p指向的结点按Tag指定的顺序插入到链表中

Node *LookUp(char *name);//按姓名查找结点,返回该结点的指针

void Delete(char *name);//删除指定姓名的结点

void Sort(int tag);//按tag指定的关键字重新排序

void ShowAll();//显示全部结点,每10个显示一屏

void SetTag(int t);//置tag值

int GetTag();//取tag值

Node *GetHeadPtr(); //取首指针

~AddrList();//释放链表空间

void CreateList(char *filename);//从二进制文件读入数据

void WriteToFile(char *filename);//将链表中数据写入指定的二进制文件

};

AddrList::AddrList()//构造函数,创建空链表,将tag设为1

{

HeadPtr=TailPtr=NULL;

Tag=1;

}

void AddrList::AddTail(Node *p) //将p指向的节点加入到链表尾部

{

p->next=NULL;

if(!HeadPtr)

HeadPtr=p;

else

TailPtr->next=p;

TailPtr=p;

}

void AddrList::AddSort(Node *p) //将p指针的节点按Tag指定的顺序插入到链表中{

p->next=NULL;

if(HeadPtr==NULL)

{

HeadPtr=TailPtr=p;

return;

}

else

{

Node *p1=HeadPtr, *p2;

while(((Tag==1)&&strcmp(p->Name,p1->Name)>0 && p1->next)||

(Tag==2)&&(strcmp(p->MobilePhone,p1->MobilePhone)>0 && p1->next)) {

p2=p1;

p1=p1->next;

}

if(((Tag==1)&&strcmp(p->Name,p1->Name)<0 )||

(Tag==2)&&(strcmp(p->MobilePhone,p1->MobilePhone)<0 ))

{

if(p1==HeadPtr)

{

p->next=p1;

HeadPtr=p;

}

else

{

p2->next=p;

p->next=p1;

}

}

else

{

p1->next=p;

TailPtr=p;

}

}

}

Node *AddrList::LookUp(char *name) //按姓名查找节点,返回该节点指针

{

Node *p;

p=HeadPtr;

while(p!=NULL)

{

if(strcmp(p->Name,name)==0) return p;

p=p->next;

}

return NULL;

}

void AddrList::Delete(char *name) //删除指定姓名的节点{

Node *p1,*p2;

if(HeadPtr==NULL)

{

cout<<"未删除!\n";

}

else if(strcmp(HeadPtr->Name,name)==0)

{

p1=HeadPtr;

HeadPtr=HeadPtr->next;

cout<<"删除成功!\n";

}

else

{

p1=HeadPtr;

p2=HeadPtr->next;

while(strcmp(p2->Name,name) && p2)

{

p1=p2;

p2=p2->next;

}

if(p2 && strcmp(p2->Name,name)==0)

{

p1->next=p2->next;

cout<<"删除成功!\n";

}

else cout<

}

}

void AddrList::Sort(int tag) //按tag指定的关键字重新排序{

AddrList *newptr;

newptr=new AddrList;

Node *p1=HeadPtr,*p2;

newptr->Tag=tag;

while(p1)

{

p2=p1;

p1=p1->next;

newptr->AddSort(p2);

}

HeadPtr=newptr->HeadPtr;

TailPtr=newptr->TailPtr;

Tag=newptr->Tag;

newptr->HeadPtr=NULL;

newptr->TailPtr=NULL;

delete newptr;

}

void AddrList::ShowAll() //显示全部节点,每10个显示一屏

{

if(HeadPtr==NULL)

{

cout<<"无数据!\n";

cin.get();

cin.get();

}

else

{

int n=0;

Node *p=HeadPtr;

cout<

while(p)

{

p->Show();

p=p->next;

n++;

if(n%10==0 || p==NULL)

system("pause");

}

}

}

void AddrList::SetTag(int t) //置tag值

{

Tag=t;

}

int AddrList::GetTag() //取tag值

{

return Tag;

}

Node * AddrList::GetHeadPtr() //取首指针

{

return HeadPtr;

}

AddrList::~AddrList() //释放链表空间

{

Node *p;

while(HeadPtr)

{

p=HeadPtr;

HeadPtr=HeadPtr->next;

delete p;

}

}

void AddrList::CreateList(char *filename) //从指定文件中读入数据,构造链表{

ifstream in(filename,ios::in|ios::binary|ios::nocreate);

if(!in)

return;

in.read((char*)&Tag,sizeof(int));

int nodenum;

in.read((char*)&nodenum,sizeof(int));

Node *nodeptr;

for(int i=0;i

{

nodeptr=new Node;

in.read((char*)nodeptr,sizeof(Node));

AddSort(nodeptr);

}

in.close();

}

void AddrList::WriteToFile(char *filename) //将链表中数据写入指定的文件{

ofstream out(filename,ios::out|ios::binary);

if(!out)

{

cout<<"打不开!\n";

exit(1);

}

Node *nodeptr=HeadPtr;

int nodenum=0;

while(nodeptr)

{

nodenum++;

nodeptr=nodeptr->next;

}

out.write((char*)&Tag,sizeof(int));

out.write((char*)&nodenum,sizeof(int));

nodeptr=HeadPtr;

while(nodeptr)

{

out.write((char*)nodeptr,sizeof(Node));

nodeptr=nodeptr->next;

}

out.close();

}

五、典型测试数据组:

aaa 11111 aaa111@https://www.wendangku.net/doc/916429542.html,

bbb 33333 bbb333@https://www.wendangku.net/doc/916429542.html,

ccc 22222 ccc222@https://www.wendangku.net/doc/916429542.html,

ddd 44444 ddd444@https://www.wendangku.net/doc/916429542.html,

C语言课程设计---通讯录管理系统

中国地质大学本科生课程论文封面 课程名称C语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语 (2) 目录 (3) 1.课程论文题目 (4) 2.程序设计思路 (4) 3.功能模块图 (5) 4.数据结构设计 (5) 5.算法设计 (5) 6.程序代码 (14) 7.程序运行结果 (14) 8.编程中遇到的困难及解决方法 (27) 9.总结心得及良好建议 (28) 10.致谢 (28)

1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。 ⑴数据包括:人名、工作单位、电话号码和E-mail地址。 ⑵可对记录中的姓名和电话号码进行修改。 ⑶可增加或删除记录。 ⑷可显示所有保存的记录。 ⑸可按人名或电话号码进行查询。 2.程序设计思路 根据题目的要求,程序应该采用结构体数组和文件系统实现。应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图 4.数据结构设计 整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。 5.算法设计 1.主函数 主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。 [流程图]

教学管理系统的设计与实现(数据库原理课程设计)

教学管理系统的设计与实现(数据库原理课程 设计)

1 引言 为方便对学校日常工作进行高效的管理,设计此数据库以提高学校的管理效率。随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。而建立教学管理信息系统是一个很好的解决办法。 1.1课题背景 随着信息技术的飞速发展,信息化的大环境给各成人高校提出了实现校际互联,国际互联,实现静态资源共享,动态信息发布的要求[1];信息化对学生个人提出了驾驭和掌握最新信息技术的素质要求;信息技术提供了对教学进行重大革新的新手段;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径. 校园网信息系统建设的重要性越来越为成人高校所重视。 1.2课题意义 利用计算机支持教学高效率,完成教学管理的日常事务,是适应现代教学制度要求、推动教学管理走向科学化、规范化的必要条件;而教学管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,不允许出错,如果实行手工操作,每月须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行教学管理工作,不仅能够保证各项准确无误、快速输出,而且还可以利用计算机对有关教学的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点。[2]

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工工资管理的效率,也是教学的科学化、正规化管理,与世界接轨的软件。[3] 在软件开发的过程中,随着面向对象程序设计和数据库系统的成熟,数计成为软件开发的核心,程序的设计要服从数据,因此教学管理系统的数据库设计尤其重要。本文主要介绍教学管理系统的数据库方面的设计,从需求分析到数据库的运行与维护都进行详细的叙述。 2 系统分析 2.1 需求分析 1.需求分析的任务 需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。重点是调查,收集与分析用户在数据管理中的信息要求,处理要求,数据的安全性与完整性要求。 为了完成需求分析的任务,要详细调查待开发的数据库应用部门的情况,了解原系统工作概况,分析用户的各种需求,在此基础上确定新系统的功能。[4]新系统必须考虑今后的扩充和改变,不能仅仅按当前应用需求来设计数据库。 2.需求分析的过程 1)调查教学组织机构的总体状况。本教学系统主要由教师管理系统,学生管理系统 以及教务管理系统。 2)熟悉各部门的业务活动状况。调查各部门的业务活动情况,对现行系统的功能和 和所需信息有一个明确的认识。包括了解各个部门输入和使用什么数据,如何加

仓储物资管理系统-数据库课程设计Word版

11信计2013-2014(一) 《数据库原理及应用》课程设计 设计题目仓储物资管理系统 设计时间2013.12.31---2014.1.4 学生姓名张政伟 学生学号20110402124 所在班级11精算 指导教师董晓玮 徐州工程学院数学与物理科学学院

目录 1 可行性研究 (3) 2 需求分析 (3) 2.1 任务概述 (3) 2.1.1 目标 (3) 2.1.2 运行环境 (3) 2.2 数据需求 (3) 2.2.1 数据流条目 (3) 2.2.2 数据库描述 (4) 2.3 功能需求 (4) 2.3.1 功能划分 (4) 2.3.2 功能描述 (4) 3 概要设计 (4) 4 逻辑设计 (5) 5 界面设计和代码 (7) 5.1登陆界面设计 (7) 5.2注册界面与代码 (9) 5.3修改密码 (10) 5.4系统主界面设计和代码 (11) 5.5查询信息管理界面设计 (13) 5.6添加信息查询界面设计 (14) 5.7出入库信息表设计 (18) 5.8删改信息设计 (24) 6总结 (25) 参考文献 (25)

1 可行性研究 仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。本系统的开发语言采用的是C#,开发环境采用的是Visual studio 2008,数据库采用SQL Server 2005,具有一般系统的数据功能,如数据查询,修改和删除等。仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。 2 需求分析 2.1任务概述 经过调查,对仓库管理的业务流程进行分析。库存的变化通常是通过入库、出库操作来进行。系统对每个入库操作均要求用户填写入库单,对每个出库操作均要求用户填写出库单。在出入库操作同时可以进行增加、删除和修改等操作。用户可以随时进行各种查询、统计、报表打印、账目核对等工作。另外,也可以用图表形式来反映查询结果。 2.1.1 目标 (1)界面设计要求尽量友好、美观,应提供登录界面,并考虑用户权限问题; (2)对各种信息应提供录入、修改、删除和查询功能; (3)具有对商品的基本信息和流动信息进行统计的功能; (4)具有数据备份与恢复、帮助等功能; (5)能够新增、修改和删除用户信息; 2.1.2 运行环境 Windows 98/2000/XP/2003操作系统下,安装并配置软件Microsoft SQL Server 2000数据库管理系统。 2.2数据需求 2.2.1 数据流条目 根据我们的进行的调查和分析,系统中各种功能所需的数据项和数据结构如下: ①商品信息:商品编号,商品名,商品单价;

教务管理系统课程设计报告

课程设计报告 课程设计题目: 教务管理系统 学生姓名:王丙焱 专业:计算机科学与技术 学号:201130050202 班级:1130502 指导教师:李丽华 2013年6月20日

1 课程设计目标 课程设计总的目标是衡量学生是否取得学习效果,培养学生具有专业网站初步的规划、设计、制作能力。具体表现在网站内容、功能、安全等方面合理策划和规划;培养具有主页和二级页面的创意、设计等方面的技术处理能力和具有强大的动态效果制作能力。培养学生具有基于后台数据库的编程技术,实现客户—服务器端交互式动态网页的制作能力,掌握实际网页设计与制作开发流程和开发方法。 具体应达到以下目的: 1.提高学生在实际操作中收集信息,对信息进行价值判断,进行信息整理、加工的能力。 2.在实际的项目任务中培养网页设计方面的素养。 3.在实际的项目任务中使学生网页编程和制作的能力得到提高。 4.培养学生团队协作和人际交往方面的能力。 5. 培养相关知识和技能的综合应用能力。 6、掌握运用https://www.wendangku.net/doc/916429542.html,及数据库原理知识进行系统分析和设计的方法 7、掌握关系数据库的设计方法 8、掌握SQL Sever2000的应用 9、掌握简单的数据库应用程序编写方法 10、理解B/S模式结构 2 系统的运行环境 本系统软件基本配置为Windows Server2003/XP/2000/Windows 7。数据库可以选用:Microsoft SQL server 2000,s等,系统开发软件可以选用Visual Studio 2005等。 硬件最低配置为CPU: Pentium 1G MHz 以上,内存至少1G,硬盘空间2G,显示器800 *600或1024 *768。

通讯录管理系统课程设计报告完整版

通讯录管理系统课程设 计报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

设计课题题目 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main ()在程序设计中的实现思路和方法。 2. 课程设计要求 制作一个通讯录系统。 (1)该程序具有查找、添加、修改、删除功能。 (2)通讯录包括:姓名、电话、街道、城市、省、邮编等。 二、总体设计 根据系统的要求,系统总体设计如图1所示。 1

printf("\t--------------------\n"); printf("\t请您选择(0-7):"); scanf("%d",&c); }while(c>7&&c<0); return(c); } int Input(struct date per[10],int n) { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t姓名:"); scanf("%s",per[n+i].name); printf("\t电话号码:"); scanf("%s",per[n+i].phone); printf("\t电子邮箱:"); scanf("%s",per[n+i].email); printf("\tQQ:"); scanf("%s",per[n+i].QQ); gets(x); printf("\n\t是否继续添加?(Y/N)"); fflush(stdin); ame,per[i-1].phone,per[i-1].QQ,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } int Delete_a_record(struct date per[10],int n) { char s[20]; int i=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

物资管理系统课程设计报告

软件工程课程设计报告 题目:企业单位物资管理系统 学生姓名: 学号: 专业班级:网络工程专业11102班 同组姓名: 指导教师:汤海蓉 设计时间: 2014年上学年第18周

目录 一、需求分析 2 1.1需求概述 (3) 1.2系统用户分析 (4) 1.3系统功能分析 (5) 二、概要设计 5 2.1功能模块 (6) 三、详细设计 7

3.1静态建模 (7) 3.2动态建模 (13) 3.2.1时序图 (13) 3.2.2活动图 (20) 四、总结 21

一、需求分析 为了改善物资管理的现状,是的物资管理变得高效、差错少,更能节省人力成本和资金成本,便对物资管理进行信息化研究。目前市面上有许多与物资管理相关的应用软件,有使用ASP技术,有PHP技术,也有JAVA的,但其应用大多针对个别单位或部门的需要,通用性差。结合实际情况,未发现可直接使用物资管理系统,所以提出了设计与实现物资管理系统的需求。 1.1需求概述 物资管理是现代化企业生产经营活动中必不可少的一个重要环节。对企业的物资管理系统提出以下设计需求: 1.实现业务处理和信息传递的计算机集成,一边提高物资管理信息的 及时性、准确性和一致性,避免数据冗余,并实现个部门之间能够快速进行信息交流和信息共享,达到提高工作效率的目的。 2.使物资管理面向生产一线,能够更好为基层单位的管理提供优质服 务和帮助。 3.能够提供物资出入库的日期自动统计功能。 4.实现基本业务数据的综合统计分析,为各级管理人员和业务人员提 供综合分析信息服务,以便更好、更准确地了解实际情况,从而达到以信息来辅助管理、改进管理、提高管理的目的。 另外,在总体性能需求上,为了实现物资管理系统的总体目标,要求本系统还应具备实用性、经济性、可靠性、开放性和灵活性、易操作性、易维护性。

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

(完整word版)数据库课程设计教务管理系统

洛阳理工学院 课程设计报告 课程名称数据库课程设计 设计题目教务管理系统 专业计算机科学与技术 班级 学号 姓名 完成日期

课程设计任务书 设计题目:教务管理系统 设计内容与要求: 设计教务管理系统,类似于我校教务管理系统,有四类用户:教务员、学生、教师、管理员教务员可以输入学生、教师、班级、课程信息。一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。教师可以查看学习该课程的学生名单。课程结束后,教师可以录入课程成绩。一个教师可以教授多个班的多门课程,每门课由多位老师讲授。课程分两类,必修课和选修课。系统要记录每个学生学习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。 要求: 1.完成本系统的需求分析,写出功能需求和数据需求描述; 2.完成数据库的概念结构设计、逻辑结构设计、物理结构设计; 3.完成本系统的部分功能模块的程序界面设计。 指导教师: 2017 年12 月29 日 课程设计评语 成绩: 指导教师:_______________ 年月日

目录 一、概述 (2) 1.1、本设计的目的与意义 (2) 1.2、数据库开发工具和应用程序开发工具 (2) 二、需求分析 (2) 2.1功能需求 (2) 2.2数据需求 (2) 三、概念结构设计 (2) 3.1、E-R模型设计 (2) 3.2、总体E-R图描述 (4) 四、逻辑结构设计 (4) 4.1、关系模型 (4) 4.2、关系模式的优化与说明 (4) 五、物理结构设计 (5) 5.1建立数据库 (5) 5.2表与表结构 (5) 六、应用程序设计 (6) 6.1、系统总体结构 (6) 6.2、系统界面与源代码 (7) 6.2.1、界面 (8) 6.2.2、功能描述 (9) 6.2.3、程序源代码 (10) 七、设计总结 (23)

C课程设计通讯录管理系统

C课程设计通讯录管理 系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

课程设计说明书(论文)课程名称 C++程序设计实践 题目通信录管理系统 专业软件工程班级 学号姓名 xx 起止日期 指导教师赵新慧成绩 辽宁石油化工大学计算机与通信工程学院

摘要 本次课程设计任务是通过编写一个通信录管理系统,学习用Visual?C++?开发简单的管理系统。采用Visual?C++?软件为主要开发工具。巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行简单软件设计的基本思路和方法,提高运用C++解决实际问题的能力,掌握书写程序设计说明文档的能力使用计算机进行信息管理。实现通信录的管理功能(添加、删除、排序)、按姓名查询的功能,以及把联系人资料保存在文件中,将文件中内容读出来。使用计算机进行系统管理,不仅提高了工作效率,而且大大提高了其安全性,尤其对于复杂的信息管理,计算机能充分地发挥它的优越性,通信录管理系统是每个人不可缺少的部分,在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C++,在程序设计中,运用了面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标。 Abstract The curriculum design task is through the preparation of a student achievement ranking management system, learning management system with Visual C++ 6 to develop simple. Using Visual C++ 6 software as the main development tool. To consolidate and deepen the students the basic knowledge of C++

数据库课程设计---库存物资管理系统后台数据库

大型数据库课程设计 设计报告 题目:库存物资管理系统后台数据库学号: 学生姓名: 指导教师: 提交时间: 2013-11-22

目录 库存物资管理系统后台数据库..................................................................... 错误!未定义书签。第1章进行需求分析,编写数据字典....................................................... 错误!未定义书签。 1.1系统功能要求设计:...................................................................... 错误!未定义书签。 1.2模块设计.......................................................................................... 错误!未定义书签。 1.3数据字典.......................................................................................... 错误!未定义书签。第2章面向对象分析和设计..................................................................... 错误!未定义书签。第3章逻辑结构设计................................................................................. 错误!未定义书签。 3.1类和对象向关系模式转换.............................................................. 错误!未定义书签。第4章数据库物理结构设计..................................................................... 错误!未定义书签。 4.1存取方法设计.................................................................................. 错误!未定义书签。 4.2存储结构设计.................................................................................. 错误!未定义书签。 4.3物理设计.......................................................................................... 错误!未定义书签。第5章数据完整性设计............................................................................... 错误!未定义书签。 5.1主键及索引...................................................................................... 错误!未定义书签。 表名......................................................................................................... 错误!未定义书签。 5.2完整性约束的说明.......................................................................... 错误!未定义书签。 5.3 check约束...................................................................................... 错误!未定义书签。 5.4 Default默认值.............................................................................. 错误!未定义书签。 5.5 触发器设计..................................................................................... 错误!未定义书签。第6章数据库视图的设计........................................................................... 错误!未定义书签。第7章存储过程设计................................................................................. 错误!未定义书签。总结................................................................................................................. 错误!未定义书签。参考文献:..................................................................................................... 错误!未定义书签。

C语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 2015年12 月30日 计算机工程系课程设计报告 课程名称:C语言课程设计 课程设计题目:通讯录管理系统 班级:网络14-3班姓名:苏建花学号: 目录(参考) 1.设计目的与要求…………………………………………X 1.1题目与设计要求……………………………………X 1.2本程序涉及的知识点………………………………X 2.功能设计………………………………………………X 2.1总体设计……………………………………………X 2.2详细设计……………………………………………X 3.程序实现……………………………………………X 3.1程序实现时应考虑的问题…………………………X 3.2 XX模块核心代码…………………………………X 4.测试分析……………………………………………X 4.1 测试结果及分析…………………………………X 4.总结…………………………………………………X 参考文献………………………………………………X 1、设计目的与要求 这次课程设计的目的在于: 1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用; 2.通过综合C语言的基本知识来解决实际问题; 3.加强分析和解决问题的能力; 4.提高实践动手能力,将知识化为实际成果

1.1 题目与设计要求 (1)题目:通讯录 (2)设计要求 a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、 同学、家人等)等。 b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、 姓氏方式查找。 c、将通讯录保存在文件中。 d、能够输出通讯录中的信息。 1.2 本程序设计的知识点 (1)采用结构体数组。 struct Person { char a[16]; char s[16]; char d[16]; char f[24]; struct Person *next; }stu; (2)运用函数之间的调用 主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。 (3)利用指针变量 struct Person *head; struct Person *p1,*p2 2 、功能设计 添加:添加通讯录记录 修改:修改通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 显示:显示通讯录记录 统计:统计通讯录数目 2.1需求分析 信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

教务管理系统课程设计

《软件工程》 课程设计说明书 教务管理系统 学生姓名 学号 所在专业计算机科学与技术所在班级 指导教师 提交时间

目录 第一章绪言 (4) 1.1系统及需求分析 (4) 1.1.1 系统需求 (4) 1.1.2可行性分析 (4) 1.2系统功能简介 (4) 1.2.1 项目规划 (5) 1.2.2 教师管理 (5) 1.2.3 学生管理 (5) 1.2.4 成绩管理 (5) 1.2.5 课程管理 (6) 1.2.6 用户管理 (6) 1.2.7 系统开发的目标 (6) 第二章系统分析 (6) 2.1业务流程分析 (6) 2.1.1教师管理业务流程图 (6) 2.1.2学生管理业务流程图 (7) 2.1.3课程管理业务流程图 (7) 2.1.4成绩管理业务流程图 (7) 2.2数据流程分析 (8) 2.2.1数据流程图 (8) 2.3数据存储分析:实体联系图 (8) 第三章系统设计 (10) 3.1软件模块结构设计 (10) 3.1.1 系统方案确定 (10) 3.1.2 软件结构设计 (10) 3.2数据库设计 (11) 3.2.1 数据库表 (11) 第四章系统的功能 (15) 4.1系统界面 (15) 4.1.1 系统登录界面 (15) 4.1.2 系统主界面 (15) 4.1.3 系统用户管理界面 (16) 4.1.4 系统教师资料管理界面 (16) 4.1.5 系统课程界面 (17) 4.1.6 系统成绩界面 (18) 4.1.7 系统学生界面 (18) 4.2代码部分 (19) 4.2.1 login.aspx (19) 4.2.2 class.aspx (20)

c++课程设计(通讯录管理系统)

通讯录管理系统 要求: 1.创建文本文件,记录联系人的信息。 2.以菜单方式工作 3.联系人的信息包括:姓名,籍贯,电话号码,QQ号等信息 4.管理系统的功能包括: a)增加:添加新的联系人 b)删除:删除一个联系人(输入电话号码,删除该联系人) c)修改:修改某个联系人的信息 i.修改姓名 ii.修改电话号码 iii.修改籍贯 iv.修改QQ号 d)查询 i.根据名字查询联系人信息(查询结果不唯一) ii.根据电话号码查询联系人信息 iii.根据QQ号查询联系人信息 实现过程分析: 建立一个文本文件,记录联系人的基本信息 建立以下几个类: 1.联系人类:表示一个联系人 数据成员包括: 姓名 籍贯 电话号码 QQ号 成员函数包括 一组set函数为数据成员赋值 一组modify函数,修改数据成员的值 Display函数:显示联系人的信息 2.通讯簿类(这是一个数据库类):用于记录所有联系人的信息 数据成员包括: 联系人的数量 联系人对象数组 成员函数包括 构造函数:读取文本文件中的数据,并根据文件内容创建联系人对象数组 析构函数:将对象数组中的内容写入到文本文件中。 增加函数:增加一个联系人 删除操作:删除一个联系人 Display:显示所有联系人的信息 修改某一联系人的信息: 查询并显示某一联系人的信息:

3.用户类(这是一个操作类,完成通讯簿的操作):用户拥有一个通讯簿,并且可以对通讯录进行管理 数据成员包括: 通讯簿对象 成员函数包括(成员函数体现用户的行为): 添加联系人:调用通讯簿对象的增加函数完成联系人的添加 删除联系人:调用通讯簿对象的删除操作删除一个联系人 Display:显示所有联系人的信息 修改某一联系人的信息:调用通讯簿对象的函数完成操作 查询并显示某一联系人的信息:调用通讯簿对象的函数完成操作4.界面菜单类:用来给出操作提示 数据成员:可以不定义数据成员 成员函数: Display函数:显示操作菜单的提示。说明:可以根据需要定义多个函数,显示不同的菜单(操作提示)。 #include #include #include #include class person { int tel; int QQ; char name[20]; char nplace[40]; public: int set_tel() { return tel; } int set_QQ() {

库存管理系统课程设计

库存管理系统课程设计 一、需求分析 (2) 1.1 编写目的: (2) 1.2 项目背景: (3) 1.3 系统使用对象: (3) 1.4 功能需求: (4) 1.4.1 业务流程图: (4) 1.4.2 功能模块图: (4) 1.4.3 功能介绍: (5) 1.4.4 问题域描述: (6) 1.5 性能要求: (6) 1.6 运行环境: (6) 二、系统详细设计 (6) 2.1系统总体设计 (7) 2.1.1 运行环境 (7) 2.1.2 系统流程 (7) 2.1.3 系统结构 (8) 2.2系统接口的概要设计 (9) 2.2.1 用户接口 (9) 2.3 数据库概要设计 (10)

2.3.1 物理结构设计 (11) 三、系统实现 (12) 3.1 系统开发环境 (12) 3.2 系统实现 (12) 3.2.1 客户端系统实现 (12) 一、需求分析 1.1 编写目的: 库存管理工作如由人工完成,主要依靠个人经验和厚重的资料簿,查询工作繁琐而且质量不高,容易出错。如果利用计算机的高速计算能力和广泛的普及应用,则能利用判断条件,更快地找出所要

查询的库存产品。库存管理系统是一套对货品入库、出库、库存进行全面管理的系统。 1.2 项目背景: 由于市场竞争的需要,如何吸引和留住人才,激发员工的创造行、工作责任感和工作热情已经成为关系企业兴衰的重要因素,人才已成为企业最重要的资产之一。“公正、公平、合理”的企业管理理念和企业管理水平的提高,是社会对库存管理系统有了更高的需求;同时由于个人电脑的普及,数据库技术、客户/服务器技术,特别是Internet/Intranet技术的发展,使的三代库存管理系统的出现才成为必然。库存管理系统的特点是从物品管理的角度出发,用集中的数据库将几乎所有与物品相关的数据统一管理起来,形成了集成的信息源。有好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得物品管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业物品规划和政策。 企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。 1.3系统使用对象:

C语言课程设计通讯录管理系统

C语言课程设计通讯录 管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

***科技大学 本科生课程设计说明书 题目:C语言课程设计 ——通讯录管理系统 学生姓名:** 学号:*** 专业:软件工程 班级:1 指导教师:**

内蒙古科技大学课程设计任务书 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 通讯录管理系统 现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。要求设计菜单来调用其各功能模块: 新建文件、打开文件、保存信息到文件 输入记录、输出记录 查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查 询) 修改、插入和删除记录 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天? 选择课程设计题目,分析课题的要求 第二天? 编程 第三天? 编程及调试 第四天? 写课程设计报告

通讯录管理系统课程设计报告书(C语言)[1]

开放教育 课程设计报告书 课程名称:通讯录管理系统 班级:综合邮政07秋 学号: 0 姓名:王芬 指导老师:高海东

通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person;

物资管理系统 C语言课程设计

物资管理系统程序设计 本程序在VC++ 6.0上运行无误!!! 一、题目要求: 主程序中,应提供文字交互菜单界面。要求包含以下几个功能模块: (1).信息输入模块input():建立物资管理数据总文件,完成对物资原库存信息的录入,并将其存放在指定的文件(product.txt)。 (2).信息查找模块search():采用如下方式进行查找,若找到,则输出该物资的相关信息;否则,输出提示信息,如“NO FOUND!!!”。 1).按产品信息查询; 2).按进货信息查询并统计(统计某年某月进的某种产品数量,产品种类); 3).按产品名称和规模查询并统计; (3).新物资入库模块:在原文件插入新物资信息。 (4).领料模块:查找所领取物资信息,若满足领料的要求,请登记领取物资名称,领料的日期,所领数量(领料后对库存修改)。 (5).打印功能模块: 1).打印领料单; 2).打印物资库存清单。 二、需求分析 (1)、库存和领料信息以文本文件的方式存放在两个文件里,提供相应的输入输出操作。 (2)、提供库存几种方式的查找。 (3)、提供库存的建立、插入。 (4)、能查找满足领货要求的信息,并修改库存、领货文本文件。 三、总体设计 根据要求可以将系统设计为七大模块。 四、详细设计 1、主函数 主函数只调用主菜单函数。

//********主函数******** void menu() { int n,w=0; printf("\t\t**************Menu**************\n"); printf("\ninput your choice:\n"); scanf("%d",&n); do { if(n>6||n<1) { printf("\nWrong!Input agin!\n"); scanf("%d",&n); } else w=1; }while(w!=1); switch(n) { case 1:input();break; 输入 case 2:search_menu();break; 查找菜单流程图 case 3:insert();break; 插入 case 4:lend();break; 领货 case 5:print_menu();break; 打印菜单 case 6:exit(0); 退出 } } 3、输入模块 [数据结构] 所输入的数据在磁盘上以文本文件的形式保存,名字为product.txt! 在程序中以链表的形式储存!结构体如下:struct date /*日期结构体*/ { int year; int month; int day; }; struct product /*库存货物结构体*/ { char p_name[20]; /*货物名称*/ long int p_num; /*物资编号 char size[4]; /*物资规格*/ struct date in_date; /*进货日期*/ long int max_s; /*最大库存量*/ long int min_s; /*最小库存量*/ long int real_s; /*实际库存量*/

相关文档
相关文档 最新文档