C语言课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计报告 Prepared on 24 November 2020
C语言课程设计论文
学生姓名:陈丹
学生学号:
所在班级:信息与计算科学一班
任课教师:马老师
通讯录管理系统
【设计目的】
设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。
(1)数据包括:人名、工作单位、电话号码和E-mail地址。
(2)可对记录中的姓名和电话号码进行修改。
(3)可增加或删除记录。
(4)可显示所有保存的记录。
(5)可按人名或电话号码进行查询。
【设计思路】
根据要求,电话簿数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
【总体设计】
图1 系统功能模块图
【详细设计】
1.主函数
主函数设计要求简洁,只提供部分提示语和函数的调用
【程序】
图2. 主函数流程图
Void menu() /*主界面*/
{
int n, w1;
void enter(); void add(); void modify(); void browse(); void deleter(); void search();
do
{
puts("\t******************************菜单*****************************\t\n\n"); puts("\t\t\t\t1.新建联系人");
puts("\t\t\t\t2.添加联系人");
puts("\t\t\t\t3.修改");
puts("\t\t\t\t4.删除");
puts("\t\t\t\t5.浏览");
puts("\t\t\t\t6.查找");
puts("\t\t\t\t7.退出");
puts("\n\n\t***************************通讯录
******************************\t\n");
printf("请选择服务种类(1-7) : [ ]\b\b");
scanf("%d",&n);
if(n<1||n>7)
{w1=1;getchar();}
else w1=0;
}while(w1==1);
switch(n)
{
case 1: enter(); break; /*输入模块*/
case 2: add(); break; /*添加模块*/
附录:源代码
#define N 50
#include<>
#include<>
struct people
{char name[20]; char company[50]; char num[15]; char mail[20];}peop[N];
void printf_face()
{ printf("\n\t姓名\t单位\t电话号码\t邮箱\n"); }
void printf_one(int i)
{ printf("\t%s\t%s\t%s\t%s\n",peop[i].name,peop[i]pany,peop[i].num,peop[i].mail); }
void printf_n(int n)
{ int j;
for(j=0;j { if((j!=0)&&(j%10==0)) {printf("\n\nPress any key to continue...:"); getchar(); puts("\n\n");} printf_one(j); } getchar(); } int load() { FILE *fp; int i; if((fp=fopen("file","rb"))==NULL) { printf("\nCan not open file\n"); exit(0); } for(i=0;!feof(fp);i++) fread(&peop[i],sizeof(struct people),1,fp); fclose(fp); return(i-1); } int modify_data(int i,int n) { int c,w1; void input(int i); void menu(); do { puts("\n修改选项=>\n\n 1).姓名 2).单位 3).电话号码 4).邮箱 5).所有数据 6).取消并返回"); printf("请选择: [ ]\b\b"); scanf("%d",&c); if(c>6||c<1) {puts("\nChoose error! Please again!"); getchar();} }while(c>6||c<1); do { switch(c) { case 1: printf("name:"); scanf("%s",peop[i].name); break; case 2: printf("company:"); scanf("%s",peop[i]pany); break; case 3: printf("number:"); scanf("%s",peop[i].num); break; case 4: printf("e-mail:"); scanf("%s",peop[i].mail); break; case 5: input(i); break; case 6: menu(); } puts("\nNow:\n"); printf_face(); printf_one(i); printf("\n确定\n\n\t1).是 2).不,重新修改 3).返回不保存 [ ]\b\b"); scanf("%d",&w1); }while(w1==2); return(w1); } void input(int i) { printf_face(); printf("\t"); scanf("%s\t%s\t%s\t%s",peop[i].name,peop[i]pany,peop[i].num,peop[i].mail); } void save(int n) { FILE *fp; int i; if((fp=fopen("file","wb"))==NULL)