c语言课程设计--同学录系统

合集下载

c语言学生通讯录管理系统设计

c语言学生通讯录管理系统设计

C语言学生通讯录管理系统设计1. 系统概述本文档描述了一个基于C语言的学生通讯录管理系统的设计。

该系统旨在提供一个简单而有效的方式来管理学校中学生的联系信息。

2. 功能需求学生通讯录管理系统需要满足以下功能需求:•添加学生信息:包括学生姓名、学号、年级、班级、电话号码等。

•删除学生信息:根据学号或姓名删除指定学生的信息。

•修改学生信息:根据学号或姓名修改指定学生的信息。

•查询学生信息:根据学号或姓名查询指定学生的信息。

•显示所有学生信息:展示学生通讯录中所有学生的信息。

3. 系统设计3.1 数据结构系统使用以下数据结构来表示学生通讯录:struct Student {char name[50];int studentID;int grade;int class;char phoneNumber[20];};struct StudentDirectory {struct Student students[100];int count;};学生通讯录使用一个结构体数组来存储学生信息,每个学生信息包含姓名、学号、年级、班级和电话号码。

StudentDirectory结构体用于存储整个学生通讯录,count表示当前学生通讯录中的学生数量。

3.2 模块设计系统的实现可以分为以下几个模块:•输入输出模块:负责从用户获取输入以及将结果输出给用户。

•添加学生信息模块:负责向学生通讯录中添加新的学生信息。

•删除学生信息模块:负责从学生通讯录中删除指定学生的信息。

•修改学生信息模块:负责修改学生通讯录中指定学生的信息。

•查询学生信息模块:负责查询学生通讯录中指定学生的信息。

•显示学生信息模块:负责展示学生通讯录中所有学生的信息。

3.3 系统流程下图展示了学生通讯录管理系统的基本流程:flowchart LRA[开始]B[用户输入选项]C{选项是添加学生信息?}D[执行添加学生信息模块]E{选项是删除学生信息?}F[执行删除学生信息模块]G{选项是修改学生信息?}H[执行修改学生信息模块]I{选项是查询学生信息?}J[执行查询学生信息模块]K{选项是显示所有学生信息?}L[执行显示学生信息模块]M[结束]A --> BB -- Yes --> CB -- No --> EC -- Yes --> DC -- No --> ED --> ME -- Yes --> FE -- No --> GF --> MG -- Yes --> HG -- No --> IH --> MI -- Yes --> JI -- No --> KJ --> MK -- Yes --> LK -- No --> ML --> M4. 系统实现系统的具体实现可以参考下面的示例代码:```c #include <stdio.h>struct Student { char name[50]; int studentID; int grade; int class; char phoneNumber[20]; };struct StudentDirectory { struct Student students[100]; int count; };void addStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并添加到学生通讯录中 }void deleteStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并从学生通讯录中删除 }void modifyStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并修改学生通讯录中指定学生的信息 }void queryStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并查询学生通讯录中指定学生的信息 }void showAllStudents(struct StudentDirectory* directory) { // 显示学生通讯录中所有学生的信息 }int main() { struct StudentDirectory directory; directory.count = 0;int option;while (1) {printf(\。

C++课程设计_同学录设计报告

C++课程设计_同学录设计报告

面向对象程序设计课程设计报告题目同学录管理系统班级计算101姓名杨敬周学号青岛科技大学信息科学技术学院计算机软件教研室同学录管理系统详细设计说明书1.项目设计背景:2.项目设计目的:通过设计一个《同学录管理系统》,进一步熟悉C++中类的概念、基本知识和技能,类的封装、继承的实现方式。

掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。

了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。

3.项目需求分析以本班的同学的具体数据为背景,设计一个本班同学同学录,要求如下:(1) 录入信息,必须包括:姓名,性别,电话,家庭地址,邮编,E-mail 等基本信息;(2)修改信息,包括插入一条或多条信息,修改或者删除某人的信息;(3)查询信息,可以按姓名,家庭住址,性别等多种方式查询; (4)显示所有信息 ;4. 概要设计同学录管理系统数据结构及各模块分析:1.设计类,对象及基本数据类型:创建一个Classmates 类,它有五个私有数据成员:添加同学删除信息显示所有同学修改信息 查询同学关闭通讯录string name; 姓名string address; 地址string number; 电话号码string post; 邮编string email E-mailstring qq; QQ号码包含七个公有成员函数:功能如下:char diaplay(); 首页void add_person(); 添加同学void del_person(); 删除同学void show_all(); 显示所有同学void alter(); 修改信息void inquiry(); 查询同学void save_new(); 保存新增加的同学在主函数main()之中,.Classmates obj; 创建名为obj的对象结构体:struct student{Classmates object; object对象作为结构体student的一个成员student *prior; 定义一个指向前驱的结构体指针student *next; 定义一个指向后继的结构体指针};该结构体是在alter()修改函数中用来处理相关信息的修改.字符串变量: str,record;字符变量: choose;布尔型变量: flag;数据保存方式以及格式:该同学录管理系统将把输入的人员信息保存为pClassmates.txt 文本文件,在文件读取时系统将会把该文件中相关信息读出,并在屏幕上显示出相关信息.2.实现各模块功能的相应程序:1.界面:display(){system("cls");cout<<endl;cout<<"\t\t------------------------------….. ……fflush(stdin);return choose;}添加同学:add_person(){cout<<endl<<"根据下面……. …….save_new(){ofstream outData("pClassmates.txt", ios::app); if(!outData)……outData.close();}cout<<endl<<"新同学信息已经保存好!!!"<<endl<<endl; system("pause");}删除同学信息del_person(){ofstream outData("temp.txt", ios::out);……cout<<endl<<"这个人的信息已经从你的同学录中删除!!!"<<endl<<endl;}system("pause");}显示所有同学信息:show_all(){ifstream inData("pClassmates.txt",ios::in);……cout<<"所有同学信息已经全部显示出来!!!"<<endl;}system("pause");}修改同学信息alter(){ifstream inData("pClassmates.txt", ios::in);……cout<<endl<<"信息已经修改完成!!!"<<endl<<endl;system("pause");}}查询同学信息select(){ifstream inData("pClassmates.txt",ios::in);……}system("pause");}5.详细设计详细功能如下:A,添加:系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名,电话号码,QQ号,邮箱,邮编,地址.B,删除:首先由用户输入要删除的人员的姓名或者电话号码,然后调用删除函数,删除该人员的所有相关资料.C,显示所有人员信息:该功能将显示已经保存的所有人员的姓名,电话,QQ号,邮编及地址.D,修改:首先由用户输入要修改的人员姓名或者电话号码,然后系统用修改函数查找,显示该名同学的资料,然后系统提示用户输入需要修改的人员的相关信息.并用双向链表来实现修改功能E,查询:可由用户输入要查找的人员姓名或电话号码,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息. F,退出系统关闭同学录管理系统.菜单用于选择各项功能:其中包括:.a:添加新同学;.b:删除同学;.c:显示所有人员信息;.d:修改人员信息;.e: 查询同学;.f:关闭同学录.采用面向对象的程序设计方法,a,b,c,d,e,这五项菜单都调用一个函数来实void Classmates::alter(){ifstream inData("pClassmates.txt", ios::in);//打开文件pClassmates.txt,进行读操作if(!inData)//判断文件打开是否成功{cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;//如果打开失败,输出“对不起不能打开文件!!!”system("pause");//屏幕暂停return;}string sign;//定义字符串变量signcout<<endl<<"请输入你想要修改的同学的姓名或电话号码:";cin>>sign;//输入变量signfflush(stdin);//清空缓冲区record *H=new record;//新建结构体指针变量H,并为其分配空间record *p=H;//使p指针指向指针Hrecord *q=H;//使q指针也指向指针Hbool flag=true;//定义布尔型变量flag.while(inData>>p->>>p->object.number>>p->object.qq >>p->object.post>>p->object.address)//读取文件中一个人的信息{p->next=new record; //建立双向链表p=p->next;p->prior=q;q->next=p;q=p;}p->next=NULL;//使p的next成员指向NULL.inData.close();//关闭pClassmates.txt文件p=H;//使指针变量P指向结构指针H的头节点while(p)//当p不为空时{if((p->==sign)||(p->object.number==sign))//判断输入是否为空.{if(flag){cout<<endl<<"你想修改你同学的信息如下:"<<endl<<endl;cout<<setiosflags(ios::left)<<setw(17)<<p-><<""<<setw(16)<<p->object.number<<" "<<setw(18)<<p->object.qq <<" "<<setw(14)<<p->object.post<<""<<setw(20)<<p->object.address<<endl;//输出要修改的人的信息flag=false;}cout<<endl<<"请根据下面提示修改信息 : "<<endl;cout<<"姓名 :" ;cin>>p->;fflush(stdin);cout<<"电话号:";cin>>p->object.number;fflush(stdin);cout<<"QQ :";cin>>p->object.qq;fflush(stdin);cout<<"邮编 :";cin>>p->object.post;fflush(stdin);cout<<"地址 :";cin>>p->object.address;fflush(stdin);break;//根据提示进行修改}p=p->next;//使结构体指针p指向该指针的末尾 }if(flag){cout<<endl<<"你的同学录中没有你找的联人!!!";cout<<endl<<endl;system("pause");return;}else{ofstream out("pClassmates.txt",ios::out);//打开文件pClassmates.txt,进行写操作if (!out) //判断文件打开是否成功打开{cout <<endl <<"对不起!!!不能打开文件!!!!" <<endl; system("pause");return;}p=H; //使结构体指针p指向被修改的人的记录的首地址. while(p)//如果p不为空,则执行以下语句{out<<setiosflags(ios::left)<<setw(17)<<p-> <<" "<<setw(16)<<p->object.number<<" "<<setw(18)<<p->object.qq<<" "<<setw(14)<<p->object.post<<" "<<setw(20)<<p->object.address<<endl;将修改后的信息保存到原来位置p=p->next;//使用p指针指向其本身的末尾}out.close();//关闭pClassmates.txt文件cout<<endl<<"信息已经修改完成!!!"<<endl<<endl;system("pause");//屏幕暂停}}6.设计总结参考文献:《C++ 程序开发深入浅出》参考网站:Google , 百度,csdn 等等在开发当中,遇到问题是正常的,关键是怎样解决问题。

C语言程序设计学生通讯录管理系统

C语言程序设计学生通讯录管理系统

C语言程序设计学生通讯录管理系统文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)#define null 0struct record{char name[20];char phone[20];char adress[40];char postcode[10];char e_mail[30];}student[500];struct LinkList{struct record US;struct LinkList *next;}a;struct LinkList *head=null; int num=0;FILE *fp;int menu_select();int adduser();int list();int search();int display();int add();int listbyname();int dele();int save();int exit();void main(){system("cls");for(;;){switch(menu_select()) {case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0);}}}menu_select(){char s[80];int a;printf("*_* press any key enter menu! *_* \n");getch();system("cls");printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n");printf("\t\t 1. 显示记录 \n");printf("\t\t 2. 按姓名查找\n");printf("\t\t 3. 插入记录 \n");printf("\t\t 4. 删除记录\n");printf("\t\t 5. 记录保存文件\n");printf("\t\t 6. Quit\n");printf("\t\t***********************************************\n"); do{printf("\n Enter you choice(0~11):");scanf("%s",s);a=atoi(s);}while (a<0||a>11);return a;}adduser()printf("\n\t\t**************** 请输入用户信息 ****************\n"); printf("\n\t\t输入姓名:");scanf("%s",&student[num].name);printf("\n\t\t输入电话号码:");scanf("%s",&student[num].phone);printf("\n\t\t输入地址:");scanf("%s",&student[num].adress);printf("\n\t\t输入邮编:");scanf("%s",&student[num].postcode);printf("\n\t\t输入e-mail:");scanf("%s",&student[num].e_mail);num++;printf("\n\t\t是否继续添加?(Y/N):");if (getch()=='y')adduser();return(0);}list(){int i;system("cls");if(num!=0)printf("\n\t\t*************** 以下为通讯录所有信息************"); for (i=0;i<num;i++){printf("\n\t\t姓名: %s",student[i].name);printf("\n\t\t电话: %s",student[i].phone);printf("\n\t\t地址: %s",student[i].adress);printf("\n\t\t邮编: %s",student[i].postcode);printf("\n\t\te-mail:%s",student[i].e_mail);printf("\t\t");if (i+1<num){printf("\n\t\t__________________________");system("pause");}}printf("\n\t\t************************************************"); }elseprintf("\n\t\t通讯录中无任何纪录");printf("\n\t\t按任意键返回主菜单:");getch();return(0);search(){int mark=0;int i;int a=0;printf("\n\t\t***************** 按姓名查找 *******************"); char name[20];printf("\n\t\t请输入姓名:");scanf("%s",name);for(i=a;i<num;i++){if (strcmp(student[i].name,name)==0){printf("\n\t\t************* 以下是您查找的用户信息 ***********"); printf("\n\t\t姓名: %s",student[i].name);printf("\n\t\t电话: %s",student[i].phone);printf("\n\t\t地址: %s",student[i].adress);printf("\n\t\te-mail:%s",student[i].e_mail);printf("\n\t\t************************************************"); mark++;if ((i+1)<num){printf("\n\t\t是否继续查找相同名字的用户信息:(y/n)"); if (getch()=='y'){a=i;continue;}elsereturn(0);}else{printf("\n\t\t按任意键返回主菜单");getch();return(0);}}}if(mark!=0){printf("\n\t\t没有相同姓名的用户纪录");printf("\n\t\t按任意键返回主菜单");getch();return(0);}else{printf("\n\t\t没有相同姓名的用户纪录");printf("\n\t\t按任意键返回主菜单");getch();return(0);}}add(){int i;if ((fp=fopen("","wb"))==NULL){printf("\n\t\t文件打开失败");}for (i=0;i<num;i++){if (fwrite(&student[i],sizeof(struct record),1,fp)!=1){printf("\n\t\t写入文件错误!\n");}printf("\n\t\t**************** 请输入用户信息 ****************\n");printf("\n\t\t输入姓名:");scanf("%s",&student[num].name);printf("\n\t\t输入电话号码:");scanf("%s",&student[num].phone);printf("\n\t\t输入地址:");scanf("%s",&student[num].adress);printf("\n\t\t输入邮编:");scanf("%s",&student[num].postcode); printf("\n\t\t输入e-mail:");scanf("%s",&student[num].e_mail);num++;printf("\n\t\t是否继续添加?(Y/N):");if (getch()=='y')adduser();return(0);}fclose(fp);printf("\n\t\t通讯录文件已保存");printf("\n\t\t按任意键退出程序\n\t\t"); exit(0);return(0);}void deletebyphone(){int i,j;int deletemark=0;char phone[20];printf("\n\t\t请输入要删除用户电话号码:"); scanf("%s",phone);if(num==0){printf("\n\t\t对不起,文件中无任何纪录"); printf("\n\t\t按任意键返回主菜单");getch();return;}for (i=0;i<num;i++){if (strcmp(student[i].phone,phone)==NULL){printf("\n\t\t以下是您要删除的用户纪录:"); printf("\n\t\t姓名: %s",student[i].name); printf("\n\t\t电话: %s",student[i].phone); printf("\n\t\t地址: %s",student[i].adress); printf("\n\t\te-mail:%s",student[i].e_mail); printf("\n\t\t是否删除?(y/n)");if (getch()=='y'){for (j=i;j<num-1;j++)student[j]=student[j+1];num--;deletemark++;printf("\n\t\t删除成功");printf("\n\t\t是否继续删除?(y/n)"); if (getch()=='y')deletebyphone();return;}elsereturn;}continue;}if (deletemark==0){printf("\n\t\t没有该用户的纪录"); printf("\n\t\t是否继续删除?(y/n)"); if (getch()=='y')deletebyphone();return;}}void deletebyname(){int a=0;int findmark=0;int j;int deletemark=0;int i;char name[20];printf("\n\t\t请输入要删除用户姓名:");scanf("%s",name);for (i=a;i<num;i++){if (strcmp(student[i].name,name)==NULL){printf("\n\t\t以下是您要删除的用户纪录:"); findmark++;printf("\n\t\t________________________________"); printf("\n\t\t姓名: %s",student[i].name);printf("\n\t\t电话: %s",student[i].phone);printf("\n\t\t地址: %s",student[i].adress);printf("\n\t\te-mail:%s",student[i].e_mail);printf("\n\t\t________________________________"); printf("\n\t\t是否删除?(y/n)");if (getch()=='y'){for (j=i;j<num-1;j++)student[j]=student[j+1];num--;deletemark++;printf("\n\t\t删除成功");if((i+1)<num){printf("\n\t\t是否继续删除相同姓名的用户信息?(y/n)"); if (getch()=='y'){a=i;continue;}}printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deletebyname();return;}if((i+1)<num){printf("\n\t\t是否继续删除相同姓名的用户信息?(y/n)"); if (getch()=='y'){a=i;continue;}}}elsecontinue;}if ((deletemark==0)&&(findmark==0)){printf("\n\t\t没有该用户的纪录");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deletebyphone();return;return;}else if (findmark!=0){printf("\n\t\t没有重名信息");printf("\n\t\t没有该用户的纪录");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deletebyphone();return;return;}}dele(){char choic;printf("\n\t\t1-按电话号码删除 2-按姓名删除"); printf("\n\t\t请选择:");choic=getch();switch (choic){case '1':deletebyphone();break;case '2':deletebyname();break;}return(0);}save(){int j;FILE*fp;fp=fopen("","w");if (fp==NULL)printf("can't open the file.");if(num!=0){for(j=0;j<num;j++){fwrite(student,sizeof(student),1,fp); }}printf("保存成功!");fclose(fp);return(0);}。

学生通讯录管理系统c语言编程

学生通讯录管理系统c语言编程

学生通讯录管理系统c语言编程以下是一个简单的C语言程序,用于管理学生通讯录。

该程序可以添加、显示、查找和删除学生信息。

c复制代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_STUDENTS 100#define MAX_NAME_LENGTH 50// 学生结构体struct Student {char name[MAX_NAME_LENGTH];int age;char gender;char phone[15];char email[50];};// 学生数组struct Student students[MAX_STUDENTS];int num_students = 0;// 添加学生信息void add_student() {if (num_students >= MAX_STUDENTS) {printf("Error: Reached maximum number of students\n");return;}struct Student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter age: ");scanf("%d", &new_student.age);printf("Enter gender (M/F): ");scanf(" %c", &new_student.gender);printf("Enter phone number: ");scanf("%s", new_student.phone);printf("Enter email: ");scanf("%s", new_student.email);students[num_students] = new_student;num_students++;}// 显示所有学生信息void display_students() {printf("Name\tAge\tGender\tPhone\tEmail\n");for (int i = 0; i < num_students; i++) {printf("%s\t%d\t%c\t%s\t%s\n", students[i].name, students[i].age, students[i].gender, students[i].phone, students[i].email);}}// 查找学生信息void find_student() {char name[MAX_NAME_LENGTH];printf("Enter student name: ");scanf("%s", name);for (int i = 0; i < num_students; i++) {if (strcmp(students[i].name, name) == 0) {printf("Name: %s\n", students[i].name);printf("Age: %d\n", students[i].age);printf("Gender: %c\n", students[i].gender); printf("Phone: %s\n", students[i].phone); printf("Email: %s\n", students[i].email); return;}}printf("Error: Student not found\n");}// 删除学生信息void delete_student() {char name[MAX_NAME_LENGTH];printf("Enter student name: ");scanf("%s", name);int found = 0;for (int i = 0; i < num_students; i++) {if (strcmp(students[i].name, name) == 0) { found = 1;for (int j = i; j < num_students - 1; j++) { students[j] = students[j+1];}num_students--;break;}}if (!found) {printf("Error: Student not found\n");} else {printf("Student deleted successfully\n"); }}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Display students\n");printf("3. Find student\n");printf("4. Delete student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case 1: add_student(); break;case 2: display_students(); break;case 3: find_student(); break;case 4: delete_student(); break;case 5: printf("Exiting...\n"); break; default: printf("Invalid choice\n"); break; }} while (choice != 5);return 0。

c语言课程设计学生通讯录管理系统

c语言课程设计学生通讯录管理系统

C语言课程设计 - 学生通讯录管理系统1. 引言学生通讯录管理系统,简称STMS(Student Telephone Management System),是一款基于 C 语言开发的学生通讯信息管理系统。

该系统旨在帮助学校或其他机构方便地管理学生通讯录信息,包括学生的基本信息、联系方式等。

本文档将介绍该系统的设计要求、功能模块、数据结构、算法以及使用方法。

2. 设计要求学生通讯录管理系统应满足以下设计要求:•能够实现学生信息的添加、删除、修改和查询等基本操作;•提供用户友好的界面,方便用户进行操作;•数据存储应使用文件方式进行,确保数据可以持久保存;•提供合理的错误处理机制,提示用户操作引起的错误并给予相应的错误提示。

3. 功能模块学生通讯录管理系统包含以下功能模块:3.1 用户管理模块该模块用于管理系统注册的用户信息,包括用户的登录名、密码等。

•用户登录:用户输入用户名和密码,系统验证登录信息并提供相应权限;•用户注册:新用户可以通过该功能注册账号,并设置登录密码;•用户权限管理:系统根据用户不同的角色分配相应的权限。

3.2 学生信息管理模块该模块用于管理学生的基本信息和通讯录信息。

•添加学生信息:用户可以添加学生的基本信息和联系方式;•删除学生信息:用户可以根据学生的ID删除特定学生的信息;•修改学生信息:用户可以修改指定学生的信息;•查询学生信息:用户可以根据学生的姓名或其他关键词进行学生信息的查询。

3.3 通讯录管理模块该模块用于管理学生的通讯录信息,包括通讯录的名称、联系方式等。

•添加通讯录:用户可以添加新的通讯录,并指定通讯录的名称;•删除通讯录:用户可以根据通讯录的名称删除指定的通讯录;•修改通讯录:用户可以修改已存在的通讯录的名称;•查询通讯录:用户可以根据通讯录的名称查询对应的联系方式。

4. 数据结构学生通讯录管理系统采用以下数据结构:4.1 学生结构体typedef struct {int id; // 学生IDchar name[20]; // 学生姓名char gender; // 学生性别char phone[11]; // 学生电话号码char email[50]; // 学生电子邮箱} Student;4.2 通讯录结构体typedef struct {char name[50]; // 通讯录名称char phone[11]; // 通讯录联系方式} Directory;5. 算法学生通讯录管理系统采用以下算法实现部分功能:5.1 添加学生信息```c void addStudent() { Student student; // 用户输入学生信息 printf(。

同学录管理系统 课程设计报告

同学录管理系统 课程设计报告

计算机系《软件工程》课程设计报告题目:同学录管理系统班级:学号:姓名:指导老师:年月日【实验一列车时刻查询系统注释】#include<iostream> //标准库函数#include<fstream>// 是包含输入输出流的头文件#include<string>//是对字符串操作的头文件#include<iomanip>// 是包含I/O流控制头文件#include<time.h> //是出时间和日期处理函数的头文件#include<windows.h> //它包含了其他Windows头文件using namespace std;//该指令涵盖了C++标准程序库的任何标识符class train_infor//定义了一个train类{private: //以下定义的为私有的函数static int train_No; // 静态数据成员char start[20]; //定义了起始站这个变量char end[20]; //定义了终点站这个变量int train_order; //定义车次这个函数int Hour_start,Minute_start; //开车的时间float GoHour; //行车时间public: // 以下为共有的函数train_infor();~train_infor();train_infor *next;void input(); // 输入函数void input(ifstream & is); // 将输入的信息放入到文件中void output(); // 输出函数void output(ofstream & os); // 将输出的信息放入到文件中void GetTime_start(); // 行车起始站函数bool GetTime(); // 判断当前车次状况函数,值为true时输出1,值为false 时输出0.int Get_train_order() { return train_order; } // 返回班次号string Get_end()const; // 返回行车的终点站的字符串};int train_infor::train_No=1;//车辆数变量train_infor::train_infor()//车辆数增加{train_No++; //车辆数自加1}train_infor::~train_infor() // 车辆数减少{train_No--; // 车辆数自减1}void train_infor::input() // 车次信息输入函数{cout<<"\t\t\t按提示输入:"<<endl;cout<<"请输入班次: ";//在界面上提示“请输入班次”while(1){cin>>train_order;//调用班次函数if (cin.fail()) // 判断输入的数据类型是否有错{cout << "\n班次输入错误,请重新输入:";//在界面上提示“班次输入错误,请重新输入”cin.clear(); // 消除输入流缓冲区cin.get(); // 输入字符串,并不从输入流中去掉终结符号}elsebreak;}GetTime_start();//行车时间函数cout<<"请输入行车时间:";while(1){cin>>GoHour;if (cin.fail()) // 如果输入失败时{cout << "\n行车时间输入错误,请重新输入:";cin.clear();// 消除输入流缓冲区cin.get(); // 输入字符串,并不从输入流中去掉终结符号}elsebreak;}cout<<"请输入起始站与终点站(始发站/终点站):";cin>>start;cin>>end;}void train_infor::input(ifstream & is) // 创建一个输入的文件类型的引用{is>>train_order>>Hour_start>>Minute_start>>start>>end>>GoHour;//将车次、发车时间写入到文件中这里的>>操作符是重载过的,是写入的功能。

同学录c课程设计

同学录c课程设计

同学录c课程设计一、课程目标知识目标:1. 让学生掌握同学录C学科的基本概念,如数据类型、变量、运算符等。

2. 使学生了解并掌握同学录C学科的基本语法结构,如顺序、选择和循环结构。

3. 帮助学生理解同学录C学科中的函数定义与调用,培养模块化编程思维。

技能目标:1. 培养学生运用同学录C学科知识解决实际问题的能力,如编写简单的计算器、小游戏等程序。

2. 提高学生的编程实践能力,能独立完成同学录C学科的编程任务,并具备调试和修改程序的能力。

3. 培养学生的团队协作能力,学会在项目中进行有效沟通与分工。

情感态度价值观目标:1. 培养学生对同学录C学科的兴趣,激发学习热情,树立自信心。

2. 培养学生具备良好的编程习惯,遵循编程规范,注重代码质量。

3. 培养学生的创新意识,敢于尝试新方法,勇于解决编程过程中遇到的问题。

4. 引导学生认识到编程对生活、学习的重要性,培养用科技改变生活的价值观。

本课程针对学生年级特点,注重理论与实践相结合,以学生为主体,教师为主导,培养学生的编程兴趣和动手能力。

课程目标具体、可衡量,为后续教学设计和评估提供明确方向。

二、教学内容1. 数据类型与变量:介绍同学录C学科中的基本数据类型,如整型、浮点型、字符型等;讲解变量的定义、赋值和作用域。

2. 运算符与表达式:讲解各类运算符的使用,如算术运算符、关系运算符、逻辑运算符等;介绍表达式的构成和计算方法。

3. 顺序结构程序设计:讲解顺序结构的概念,编写简单的顺序结构程序,如输入输出、变量计算等。

4. 选择结构程序设计:介绍选择结构的概念,如if语句、switch语句等;通过实例讲解选择结构的使用方法。

5. 循环结构程序设计:讲解循环结构的概念,如for循环、while循环等;通过实例演示循环结构在程序中的应用。

6. 函数定义与调用:介绍函数的定义方法,如返回值、参数等;讲解函数的调用方法,以及模块化编程的思维方式。

7. 数组与字符串:介绍数组的概念,如一维数组、二维数组等;讲解字符串的基本操作,如拼接、截取、查找等。

计算机C语言课程设计_学生通信录管理系统_实验报告

计算机C语言课程设计_学生通信录管理系统_实验报告

***大学*****学院综合设计报告设计名称:程序设计综合设计设计题目:学生通讯录管理系统的设计学生学号:******专业班级:****学生姓名:*****学生成绩:指导教师(职称):*****课题工作时间:11年12月26日至12年1月6日说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。

2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。

3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。

4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。

答辩小组成员应由2人及以上教师组成。

5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。

6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。

7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。

成绩评定表学生姓名:*** 学号:*** 班级:***答辩记录表指导教师评语五、综合设计(课程设计)Abstract(英文):In order to improve the students in the program of study already, the consolidation of the design, especially for school students arrange this course design. Course design of the subject is to make the students' independent design and a student communication record management system. The entire program design mainly through the c language to achieve. The purpose of this course is able to use the relevant knowledge and skills, and combining the practice teaching links, engineering and technical personnel with the necessary basic training program design, for the students to learn about the professional course and career in program design work to lay the foundation.The student directory management system "is to design a practical miniature address book program. Each record (friends information) including the name, phone number, QQ number, E-mail address, and other information. For all the operating function design a menu, the application after the operation, show the menu first, users through the menu option to choose the project operation. Program features include: input, search, insert, sorting, delete, show friends information and so on,, can input saved to the system of documents, also can be in to run the program of the time from the system files before the students read kept information, again through the program to complete the corresponding operation, realize communication record management intelligent high-speeding.I designed the program from the general idea for, first the program will run there is a hint of this program does a introduction, then, the user through tip can enter a design good the main menu. Main menu has 10 options available, the user through his work will choose corresponding options, then program executes operation.The entire program in users will have options available, the user need only through the procedures of the tip, it can complete the operation step by step, no matter you are the common user or program design staff, you can quickly through the program of the complete student communication record of the management, and give each user a very good experience.Keywords:C programming language;Communication record managementmain menu;shortcut.*/**大学计算机学院综合设计报告目录摘要 (II)Abstract (II)第一章课题背景(或2.1 XXXX (x)2.2 XXXX (x)2.3 XXXX (x)第三章详细设计 (x)3.1 XXXX (x)3.1 XXXX (x)第四章设计结果及分析 (x)4.1 XXXX (x)绪论、概述) (1)1.1 XXXX (1)1.2 XXXX (x)第二章设计简介及设计方案论述 (x)4.2 XXXX (x)4.3 XXXX (x)总结 (x)致谢 (x)参考文献 (x)附录主要程序代码 (x)摘要本着为了提高学生对已学习过的程序设计的巩固,学校特意为学生安排这次课程设计。

c语言学生通讯录管理系统设计

c语言学生通讯录管理系统设计

在开始撰写文章前,我会先收集相关的C语言学生通讯录管理系统设计的资料和信息,这有助于我更好地理解这一主题。

接下来,我将按照你的要求,通过深度和广度的方式,撰写一篇高质量、深度和广度兼具的中文文章,来帮助你全面、深刻、灵活地理解这一主题。

【目录】一、引言1.1 主题概述1.2 目的和意义二、C语言学生通讯录管理系统设计2.1 系统需求分析2.2 数据结构设计2.3 功能模块设计2.4 界面设计2.5 系统实现与测试三、总结与展望【正文】一、引言1.1 主题概述C语言学生通讯录管理系统设计是指利用C语言编程来设计一个能够实现学生通讯录管理功能的系统。

这个主题涉及到数据结构、算法设计与实现、程序模块化设计等方面的知识,对于提高编程能力和实践能力都非常有帮助。

1.2 目的和意义通过学习C语言学生通讯录管理系统设计,可以帮助我们更深入地理解数据结构与算法在实际应用中的作用,提高我们的编程能力和实践能力,为以后的软件开发奠定坚实的基础。

二、C语言学生通讯录管理系统设计2.1 系统需求分析在设计C语言学生通讯录管理系统之前,首先需要对系统的需求进行分析。

这包括了对系统功能、性能、用户界面、输入输出等方面的需求分析。

2.2 数据结构设计数据结构设计是C语言学生通讯录管理系统的核心,包括了学生信息的存储结构、通讯录的组织方式等。

2.3 功能模块设计功能模块设计是指根据系统需求分析,将系统划分为若干个功能模块,每个功能模块实现一个具体的功能,通过模块化设计实现系统的高内聚、低耦合。

2.4 界面设计界面设计是系统与用户交互的重要部分,设计一个友好、直观的用户界面是C语言学生通讯录管理系统设计的关键。

2.5 系统实现与测试系统实现是指将系统设计的各个模块进行编码实现,系统测试是指对系统进行功能测试、性能测试、兼容性测试等,保证系统的稳定性和可靠性。

三、总结与展望在C语言学生通讯录管理系统设计的过程中,我们不仅学习了C语言编程的具体应用,还对数据结构与算法有了更深入的理解,提高了编程能力和实践能力。

同学录系统VC++课程设计

同学录系统VC++课程设计

选题2名称:同学录系统目录一、课题目标1.1 程序功能简介1.2 课程设计要求1.3 评定难易级别二、具体实现2.1 程序总体方案2.1.1开发平台2.1.2程序结构或流程图2.2 关键代码及注释三、程序截图四、调试报告(在设计和实现过程所遇到的问题和解决,请如实填写)…五、总体小结(在整个设计过程中的心得体会)六、分工介绍(是独立完成还是合作完成,若为合作完成,说明合作者以及之间的具体分工)…一、课题目标1.1 程序功能简介此程序是一个简单的同学录系统,具有导入同学信息,存储,显示、新增、删除、查询、修改同学信息等功能,最主要的是,它是用双向链表实现的,所以新增和删除的效率非常的高。

其菜单分为:显示所有同学录信息、新增一个同学录信息、删除一个同学录信息、查询系统、修改同学录信息,寻求帮助等。

1.2 课程设计要求用双向链表完成一个同学录系统实现同学录所该有的功能,并方便用户的使用!1.3 评定难易级别A组二、具体实现2.1 程序总体方案2.1.1开发平台操作系统:Windows 7开发工具:visual studio 20102.1.2程序结构或流程图主函数的流程图:开始读入TXT欢迎界面显示菜单新增信息显示所有删除操作寻求帮助退出修改系统查询系统姓氏查询缺省查询记忆查询返回是否先查询储存入TXT2.2 所做改进2.2.1改进一2.2.1.1 改进方案基本上这个程序都是自己写的,改进也只是对原有要求的添加而已。

先说说这个程序怎么实现所有功能的吧。

2.2.1.2 具体实现进入程序,首先是读取txt文件的信息,然后显示的是菜单。

再然后一目了然的有各种功能。

总体是用双向链表做的。

新增结点信息:即添加一个链表结点信息。

显示所有信息:是先根据学号排序,然后从头至尾分屏显示所有信息,链表依次读取。

删除操作:即链表操作,删除一个结点.查询操作:按要求进行各种情况查询,总体思想是线性的比较,如果有匹配的字符串就输出(这里面用的是string.find函数)。

c语言课程设计--同学录系统方案

c语言课程设计--同学录系统方案

目录1.摘要 (2)2.功能与数据分析 (3)2.1功能分析 (3)2.2数据分析 (3)3.总体设计 (4)3.1设计框图 (4)4.模块介绍 (5)4.1添加功能 (5)4.2显示功能 (6)5.编写与测试 (7)5.1程序问题及解法 (7)6.用法说明 (8)6.1程序用法 (8)7.总结 (12)8.附录 (13)摘要车站的票务管理系统的主要的目的在于便于掌握当天的车次运行情况,对运行信息进行添加和删除,也有利于旅客按各种不同的方式查询自己所需要的车次情况。

摆脱了繁琐的劳动,提高了工作的效率,大大提高了车站资源的利用率,便于旅客及时准确地获得需要的信息。

主要通过数组存放数据,应用循环和选择语句对数据实现录入和删除功能。

关键词:车次信息,结构体数组,选择结构,循环结构2 功能分析2.1功能分析这是一个同学录系统,便于同学信息的查询、修改、删除、添加。

数据以文件的形式保存在文件中。

显示时,数据从文件中输入到显示器。

接受数据的则应该是一个结构体数组,再显示;或一个结构体变量,读取一次数据,显示在显示器上,然后再接受数据,不停的循环,直到文件中的数据被读完为止。

查询时,只需要选定所要查询同学的编号,就会显示出改同学的全部信息。

删除功能的实现,需要首先打开文件,把文件里面的信息全部输入到结构体数组中。

然后根据程序选中的同学信息覆盖。

修改时,只需要选定该同学的编号,对他(她)的容逐一进行修改。

添加,输入编号及其学生信息即可。

2.2数据分析由于显示的容包括、性别、生日、同学类型、籍贯、以及工作单位,所以必须一个结构体的数组来实现。

写入文件还需要对文件进行操作。

需要定义一个指向文件的指针。

文件名为“file1.txt”,生成在默认的TC的安装目录里边。

查询需要输入想要的一些容,这些数据的类型和结构体的元素的类型一致,所以需要定义一个整型的number,一个整型的name,一个字符串sex,一个字符串birth,一个字符串type,一个字符串jiguan,一个字符串job。

原创c语言学生通讯录管理系统设计

原创c语言学生通讯录管理系统设计

原创 C 语言学生通讯录管理系统设计简介本文将介绍一个基于 C 语言的学生通讯录管理系统的设计。

该系统旨在提供一个方便管理学生通讯录信息的工具,包括学生的基本信息、联系方式以及其他相关信息。

功能需求学生通讯录管理系统应具备以下功能:1.添加学生信息:包括学生姓名、年龄、性别、学号、联系方式等。

2.删除学生信息:根据学生姓名或学号进行删除。

3.修改学生信息:根据学生姓名或学号进行修改。

4.查询学生信息:根据学生姓名或学号进行查询。

5.显示所有学生信息:以表格形式展示所有学生的基本信息。

数据结构设计为了实现上述功能需求,我们需要设计适当的数据结构来存储学生信息。

本系统采用单链表作为主要数据结构,每个节点表示一个学生的信息。

每个节点包括以下字段:•char name[50]:学生姓名•int age:学生年龄•char gender[10]:学生性别•int studentID:学生学号•char contact[50]:学生联系方式其中,name、gender和contact字段使用字符数组来存储字符串信息,age和studentID字段使用整数来存储相应的信息。

为了方便管理学生信息,我们还需要定义一个指针变量head来表示链表的头节点。

以下是相关数据结构的定义:typedef struct ListNode {char name[50];int age;char gender[10];int studentID;char contact[50];struct ListNode* next;} ListNode;ListNode* head = NULL;功能实现添加学生信息添加学生信息的功能通过以下步骤实现:1.创建一个新的节点newNode2.提示用户输入学生的基本信息,并将信息保存到newNode的相应字段中3.将newNode插入到链表中的合适位置以下是添加学生信息的代码实现:```c ListNode* newNode = (ListNode*)malloc(sizeof(ListNode)); printf(。

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

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

《C程序设计》课程设计报告学校:题目名称:学生通讯录管理系统班级:电力工程予管理姓名:学号:指导老师:2012年6月21日目录一.课程设计目的二.总体设计1、程序设计组成框图2. 程序流程图三、详细设计1.主函数2.插入模块3.显示模块4.查找模块5.删除模块6修改模块四.调试与测试1.调试2.测试结果的分析与讨论3.测试过程中遇到的主要问题及采取的解决措施五.源程序六.参考文献一.课程设计目的C 课程设计是教学实践环节中的一项重要内容,进行此课程设计旨在:1. 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序设计员的基本素质;2. 培养学生独立分析问题,解决问题,查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势;3. 本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。

二.总体设计1.程序设计组成框图2. 程序流程图N三、详细设计1.主函数:为了源程序的简单,主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

2.插入模块此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。

3.显示模块此模块会显示所有记录,流程图如下:4.查找模块5.删除模块次模块先利用查找模块找到所要删除的信息,然后根据用户的选择来确定是否删除信息。

6修改模块此模块先调用查找函数查找所要的信息,然后通过用户选择来确定是否修改信息。

四.调试与测试1.调试1).窗口的初始化以及主菜单的显示。

2).插入(添加)信息以及询问是否添加信息。

3).显示所有信息。

4).查找(询问查询方式)(1)用姓名查询(2)用电话查询(3)用地址查询5).保存功能6).修改功能及其退出程序2.测试结果的分析与讨论3.测试过程中遇到的主要问题及采取的解决措施1)、问题:标点符号在输入的时候,使用的是中文输入法,这种错误一般都难以发现,让修改的时候找不到目标。

c语言课程设计学生通讯录管理系统方案

c语言课程设计学生通讯录管理系统方案

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录的人员的学号、、地址、。

②显示所有人员的信息。

③通过输入查找人员信息。

④通过输入查找到要删除的人员信息,然后可以进行删除。

⑤通过输入查找到要修改的人员信息,然后可以进行修改。

⑥添加人员信息。

系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。

各按钮的功能如下:查找记录:以为关键字,查找并显示该记录。

若查找不到,则显示“好象没有”;添加记录:将当前记录按序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。

为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。

图1 系统功能模块图软件中使用的结构体和结构体数组,如:struct callmember{char name[20];char address[20];char code[20];char callnumber[20];};对用户的信息进行保存,他们都以二进制的形式读写。

其中:char name[20];char address[20];char code[20];char callnumber[20]分别对、地址、邮编、进行储存在子函数中还使用了结构体数组:struct callmember one[100];还使用了exit()、 fclose()等库函数。

c语言课程设计学生通讯录管理系统

c语言课程设计学生通讯录管理系统

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。

②显示所有人员的信息。

③通过输入姓名查找人员信息。

④通过输入姓名查找到要删除的人员信息,然后可以进行删除。

⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。

⑥添加人员信息。

系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。

各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。

若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。

姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。

图1 系统功能模块图软件中使用的结构体和结构体数组,如:struct callmember{char name[20];char address[20];char code[20];char callnumber[20];};对用户的信息进行保存,他们都以二进制的形式读写。

其中:char name[20];char address[20];char code[20];char callnumber[20]分别对姓名、地址、邮编、电话号码进行储存在子函数中还使用了结构体数组:struct callmember one[100];还使用了exit()、 fclose()等库函数。

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

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

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

一、系统背景学生通讯录管理系统是一个收集、管理完善学生信息的设计方案,用于关注学生个人详细信息,包括学生姓名,性别,年龄,家庭住址等,旨在为学校、家长提供全面、及时的信息管理服务,使用简单、实用性强,并可以根据实际需求,调整系统功能内容及操作流程的学生通讯录管理系统。

二、系统功能1、信息录入:管理员可以对学生信息进行录入,包括学生的学号、姓名、性别、年龄、家庭住址、父母电话号码等。

3、信息查询:管理员可以根据学生学号、姓名等搜索学生信息,可以快速找到所需的学生节点信息。

4、信息统计:系统可以依据信息的个性化特点,自动生成学生通讯录,便于管理人员查阅。

5、用户管理:管理员可以管理系统用户的用户名、密码、权限等,并可以根据需求增加、修改、删除用户账号信息。

三、系统流程1、系统开发:从需求分析、详细设计、界面设计到程序编码完成,包括系统功能模块开发,业务流程分析,数据库设计,数据交互,压力测试,过程控制,系统安全,系统维护与更新等,以确保系统可靠性。

2、部署与安装:系统部署完毕后,需要完成服务器端基本信息采集,如确定服务器IP地址,运行环境,程序配置,操作系统配置,备份配置,文件安全配置,权限设置等安装步骤,以确保系统安全性。

3、运行维护:根据系统实际应用情况,工程师应对系统及数据库进行定期检查,完善系统运行日志,以及故障分析,体系数据库定期备份,完善系统的安全及性能,以确保系统正常运行。

四、系统实施1、硬件及软件:学生通讯录管理系统的实施需要运行在较新的计算机硬件系统上,需要使用Windows操作系统,是采用C语言作为开发语言,开发工具可以采用Visual Studio C++、Embarcadero C++ 11或以上,数据库系统采用Oracle 9i或者MySQL。

2、系统测试:针对系统实际功能,专业测试工程师应当进行系统测试, 并对测试结果进行分析,能够及时发现和修正系统中可能存在的严重错误和不确定性缺陷, 从而获得系统良好的可靠性。

同学录c课程设计

同学录c课程设计

同学录c课程设计一、课程目标知识目标:1. 让学生掌握同学录的基本概念,了解其历史发展与现实意义;2. 学会运用同学录中的个人信息、赠言等模块进行有效沟通;3. 掌握同学录的制作方法,包括设计、排版和装饰等技巧。

技能目标:1. 培养学生搜集、整理和加工个人信息的能力;2. 提高学生运用创意和审美观念进行同学录设计的能力;3. 培养学生团队合作精神,提高沟通协调能力。

情感态度价值观目标:1. 培养学生珍惜友谊、关爱他人的情感态度;2. 增强学生对传统文化的认同感,弘扬中华民族优秀传统文化;3. 培养学生积极向上的生活态度,激发学生对美好生活的追求。

课程性质:本课程为实践性较强的学科,结合学生年级特点,注重知识性与趣味性的结合。

学生特点:学生处于青春期,对新鲜事物充满好奇,有一定的审美观念,喜欢表达和交流。

教学要求:教师应关注学生的个体差异,因材施教,激发学生的学习兴趣,注重培养学生的实践能力和创新精神。

通过本课程的学习,使学生能够将所学知识应用于实际生活,达到学以致用的目的。

同时,关注学生在学习过程中的情感态度价值观的培养,助力学生全面发展。

二、教学内容1. 同学录的基本概念与历史发展:介绍同学录的定义、起源、发展过程,以及在不同历史时期的演变;2. 同学录的组成与功能:分析同学录的各个组成部分(如封面、个人信息、赠言、照片等),阐述其功能和作用;3. 同学录制作方法与技巧:讲解同学录的设计、排版、装饰等制作方法,以及如何运用创意和审美观念进行创作;4. 同学录的赠言撰写:指导学生如何撰写具有个性、富有情感的赠言,提升同学录的纪念价值;5. 同学录制作实例分析:通过分析优秀同学录作品,让学生了解同学录的制作要点和注意事项;6. 同学录制作实践:指导学生进行同学录制作,鼓励学生发挥创意,将所学知识应用于实际操作;7. 评价与展示:组织学生进行同学录评价,展示优秀作品,提高学生的审美能力和沟通技巧。

教材章节:本教学内容依据教材中“同学录的制作”章节进行组织,结合课程目标进行拓展和深化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1.摘要 (2)2.功能与数据分析 (3)2.1功能分析 (3)2.2数据分析 (3)3.总体设计 (4)3.1设计框图 (4)4.模块介绍 (5)4.1添加功能 (5)4.2显示功能 (6)5.编写与测试 (7)5.1程序问题及解法 (7)6.用法说明 (8)6.1程序用法 (8)7.总结 (12)8.附录 (13)摘要车站的票务管理系统的主要的目的在于便于掌握当天的车次运行情况,对运行信息进行添加和删除,也有利于旅客按各种不同的方式查询自己所需要的车次情况。

摆脱了繁琐的劳动,提高了工作的效率,大大提高了车站资源的利用率,便于旅客及时准确地获得需要的信息。

主要通过数组存放数据,应用循环和选择语句对数据实现录入和删除功能。

关键词:车次信息,结构体数组,选择结构,循环结构2 功能分析2.1功能分析这是一个同学录系统,便于同学信息的查询、修改、删除、添加。

数据以文件的形式保存在文件中。

显示时,数据从文件中输入到显示器。

接受数据的则应该是一个结构体数组,再显示;或一个结构体变量,读取一次数据,显示在显示器上,然后再接受数据,不停的循环,直到文件中的数据被读完为止。

查询时,只需要选定所要查询同学的编号,就会显示出改同学的全部信息。

删除功能的实现,需要首先打开文件,把文件里面的信息全部输入到结构体数组中。

然后根据程序选中的同学信息覆盖。

修改时,只需要选定该同学的编号,对他(她)的内容逐一进行修改。

添加,输入编号及其学生信息即可。

2.2数据分析由于显示的内容包括姓名、性别、生日、同学类型、籍贯、以及工作单位,所以必须一个结构体的数组来实现。

写入文件还需要对文件进行操作。

需要定义一个指向文件的指针。

文件名为“file1.txt”,生成在默认的TC的安装目录里边。

查询需要输入想要的一些内容,这些数据的类型和结构体的元素的类型一致,所以需要定义一个整型的number,一个整型的name,一个字符串sex,一个字符串birth,一个字符串type,一个字符串jiguan,一个字符串job。

此外,循环所需要的整型的数和一个计数器。

系统在接受你输入的字符,以判断程序的走向,还需要一个字符型的变量来接受输入的提示。

3 总体设计3.1 设计框图本程序涉及到几个方面功能:添加,删除,显示,查询,修改和退出。

我的任务主要是几个功能的实现。

所以这里只对各个功能做详细阐述,总体设计只简单描述。

先定义一个结构体的数组和一个结构体变量。

通过循环的方式,向变量赋值,采用追加的方式打开文件,然后在文件中输出,即把信息保存在文件中。

由此可以进行输入或添加的功能。

把信息从文件输入到结构体数组,每输入一遍,结构体数组b[i]中i自加,记数器自加1,可表示一共有几组信息。

然后i从0到计数器最后显示的大小,循环输出结构体数组的值到显示器。

以达到显示的目的。

运行程序,显示器上显示查询,修改,删除、添加和退出几项后,要求输入对应的编号。

输入标号n,进入查询项目,是按姓名查询。

显示的内容包括姓名、性别、生日、同学类型、籍贯、以及工作单位。

输入标号c,进入查询项目,是按类型查询。

显示的内容包括姓名、性别、生日、同学类型、籍贯、以及工作单位输入标号s,进入删除项目。

选中要删除的同学编号,程序会删除该同学的所有信息。

输入标号x,进入修改项目。

输入标号r,进入添加项目输入标号e,退出系统。

所显示的内容的进行图表示:(见图3-1)4 模块介绍我的主要任务是各个功能的实现,这里主要介绍这各个功能模块。

4.1 两个查询功能几个功能都是直接在主函数中进行的,外部主要定义了按几种方式查询的函数和屏幕提示内容显示的一些函数。

下面就几个重要的功能模块做详细介绍:查询:先定义一个变量stu.number,选择查询按扭后,在stu.number不为0的前提下,显示你如果输入大或小写的n,你可以根据姓名查询信息,显示信息后返回开始界面;如果输入大或小写的c,你可以根据类型查询信息查询信息,显示信息后返回开始界面。

输入一个字符赋给字符型变量char,如果为大或小写的Y,以追加的方式打开文件file.txt,用键盘输入的方式分别输入,赋给变量p,写入文件,关闭文件。

仍满足stu.number 不为0,再循环。

查询的流程图如(图4-1):图4-1“4.2 删除与修改功能全部显示:数据在文件中,要把他从里边拿出来,显示在屏幕上。

首先打开文件,在内容不为0结束标志时,把里边的内容输出到结构体数组中,(循环的方式)。

然后再通过循环,显示结构体叔祖的内容到显示器。

删除的流程图如(图4-2):图4-2“删除”流程图修改流程图:5 调试与测试5.1程序的编写和调试我们在进行程序的编写的时候,首先设想好运行是画面信息的显示,设计好这个框架。

然后在这个框架中对应的地方添加函数,最后在主函数中实现文件的调试是在TC中进行。

最常见的错误有:某个字符没有定义,结构不匹配,缺少分号等等。

但是,此次问题比较严重的是在利用链表的时候,其利用的灵活性不是很好。

所一把链表的内容去掉,改为了结构体。

再一个就是对文件的操作不是很顺利,文件的输入和输出一直是困扰此次程序的主要原因。

主要表现在:1、不能生成文件。

该部分的主要的目的是把信息输入到文件中保存起来。

或者一些大小写的不统一。

函数的错误。

基本上属于粗心大意造成的错误。

再一个,程序在计算机房运行,可以生成文件。

但是同样的程序,带回寝室,在自己的机器上运行,则不能显示。

这也是困扰我很长时间的问题。

因为在次之前,我的序程序一直在此机器上调试。

不能生成文件,可能和此原因有关系。

2、查询时显示无限循环的乱码。

现象就不多作解释。

主要原因是,在输入要查询的车次号码、发车时间或其他的信息时,没有写上“&”取地址符。

以至于要查询的信息不能输入到程序。

要使得相同后显示的条件永远不能实现。

3、还存在一个算法上的错误。

修改前是这样的:for(i=0;i<j;i++)if(b[i].number==number)m=i;if(m==1)这是判断文件里面是否只有一项信息的代码。

错在m为1上。

如果只有一行,当i 等于0是成立,为1时结束循环,所以m永远不能为1,那么条件永远成立。

事实上把所有的信息都清空了。

以上是这次程序设计主要的几处问题的展示。

6 用法说明6.1 程序的使用1、在Windows XP VC++6.0环境下运行次程序,显示为:(如图6-1)图6-1主显示其中n按姓名查询,c为按类别查询,s是信息删除,x是修改信息,e是退出程序r是添加功能2、我们首先按n,进入按姓名查询:(如图6-2)输入编号:图6-2管理显示3、按c为按类别查询:与上面类似就不做介绍了。

4、按s进入删除信息系统:输入编号:5、修改同学的信息:输入编号:修改:6、添加同学信息:添加:各种功能正常进行总结课程设计总结通过此次课程设计,我基本上对制作一个相对来说比较大的程序有了一定的认识和了解。

这一周多来的制作,不但对这一学期C语言的知识有了一定的巩固,还增加了我们的动手能力。

就这个体统而言,涉及到结构体,文件和循环的知识,所以尤其对这几个方面有所加深和巩固。

其中又包括结构体的赋值,写到文件中。

从文件中赋值给结构体。

此外,还接触到几个我们平时接触不是很多的函数:头文件:#include<stdio.h>#include<process.h>#include<string.h>#define p "%ld %s %s %s %s %s %s\n"返回值:输出成功时,返回输出的字节数;错误时,返回主函数。

此外还有goto函数,虽然用的很少,但是关键时候还是很好用的。

但是也的确在此次上机对他们有所了解。

这个系统也存在许多不足:1、没有建立文档。

2、由于上面的关系,程序显得繁琐,而且不能打印,和保存。

同时在这里,也希望我自己能够很好的利用眼前假期的时间,好好学习有关C语言变成的知识,为下学期的编程课程打下基础。

也是对以前学习过的知识是一种复习和巩固。

这就是我对这次课程设计的一点总结附录:源程序代码#include<stdio.h>#include<process.h>#include<string.h>#define p "%ld %s %s %s %s %s %s\n"struct student{long num;char name[100];char sex[100];har birth[100];char type[100];char jiguan[100];char job[100];}stu[100]={{1,"小陈","男","1989、3、18","大学同学","汉","学校"},{2,"小李","男","1989、3、28","大学同学","汉","银行"},{3,"小王","女","1990、7、14","大学同学","满","警察局"},{4,"小吴","男","1989、6、22","中学同学","汉","饭店"},{5,"小罗","女","1990、5、18","中学同学","苗","博物馆"},{6,"小文","女","1989、3、25","中学同学","苗","图书馆"},{7,"小肖","男","1989、6、6","小学同学","汉","旅馆"},{8,"小刘","男","1989、4、8 ","小学同学","汉","网吧"},{9,"小魏","女","1990、8、13 ","小学同学","汉","软件公司"}};void introduce(){int a,i,j;printf("您想查询哪个同学的详细信息?请输入姓名编号:");scanf("%d",&a);getchar();printf("\n");for(i=0;stu[i].num!=0;i++)if(stu[i].num==a)break;printf(p,stu[i].num,stu[i].name,stu[i].sex,stu[i].birth,stu[i].type,stu[i].jiguan,stu[ i].job);}void introduces(){char b[10];int i,j;printf("你想查询那类学生的信息?请输入类别:");scanf("%s",&b);getchar();printf("\n");for(i=0;stu[i].num!=0;i++)if (strcmp(stu[i].type,b)==0)printf(p,stu[i].num,stu[i].name,stu[i].sex,stu[i].birth,stu[i].type,stu[i].jiguan,stu[ i].job);}void del(){long d;int i,j;printf("你想删除那个学生的信息?请输入编号:");scanf("%ld",&d);getchar();for(i=0;stu[i].num!=0;i++)if(stu[i].num==d)/*找到了需要删除的学生,即stu[i]*/for(j=i;stu[j].num!=0;j++)stu[j]=stu[j+1];}void xg(){long f;int i;printf("你想修改那个学生的信息?请输入编号:");L: scanf("%ld",&f);getchar();for(i=0;stu[i].num!=0;i++)if(stu[i].num==f){printf("小陈男 1989、3、18 大学同学汉学校\n");printf("请严格按照上面格式输入:");scanf("%s%s%s%s%s%s",stu[i].name,stu[i].sex,stu[i].birth,stu[i].type,stu[i].jiguan,stu [i].job);getchar();break;}if(stu[i].num==0){ printf("无,请重新输入:\n");goto L;}}void rand(){int i;printf("1 小陈男 1989、3、18 大学同学汉学校\n");printf("请严格按照上面格式输入:");for(i=0;stu[i].num!=0;i++)if(stu[i-1].num!=0&&stu[i].num==0)break;scanf("%d%s%s%s%s%s%s",&stu[i].num,stu[i].name,stu[i].sex,stu[i].birth,stu[i].type,stu [i].jiguan,stu[i].job);getchar();}void main(){char k;int i;while(1){printf(" ___________________________________________________ \n");printf("| 欢迎使用同学信息查询系统! |\n");printf("| |\n");printf("| 1.同学信息查询(按姓名查询:n键、按类别查询:c键) |\n");printf("| 2.删改同学信息(删除信息按:s键、修改信息按:x键) |\n");printf("| 3.退出系统……请按 e 键. 4.添加信息请按:r键 |\n");printf(" ___________________________________________________ \n");printf("同学姓名:\n");for(i=0;stu[i].num!=0;i++)printf("%ld %s\t",stu[i].num,stu[i].name);if("(stu[i].num%9==0")printf("\n");printf("\n");printf("请选择服务:");scanf("%c",&k);printf("\n\n");switch(k){case 'n':case 'N':printf("进入同学信息查询...\n\n");introduce();break;case 'c':case 'C':printf("进入同学类别信息查询...\n\n");printf("\n");introduces();break;case 's':case 'S':printf("进入同学信息删除系统...\n\n");printf("\n");del();printf("删除成功!\n");break;case 'x':case 'X':printf("进入同学信息修改系统...\n\n");xg();printf("修改成功!\n");break;case'r':case'R':printf("进入同学信息添加系统...\n\n");rand();break;case 'e':case 'E':exit(0);default:printf("输入信息错误!\n请重新选择服务!\n"); getchar();break;}}}参考书籍:[1]郭立山、吴天等编著,C函数使用手册,冶金工业学院出版社,2003.8[2]谭浩强、张基温、唐永炎编著,C语言程序设计教程,高等教育出版社,2005 [3]李建学等.数据结构课程设计案例精编(用C/C++描述).清华大学出版.2007-2-1 [4]严蔚敏等.数据结构(C语言版).清华大学出版社.2003-1。

相关文档
最新文档